Java里面包含8个基本数据类型,分别是:
boolean、byte、char、short、int、float、double、long
注意String 可不属于基本数据类型,它是个类...
一、String常用操作函数
1、startsWith
tom.startsWith("999",3) 注意3是从0开始算起
tom.startsWith("999")
2、endsWith
3、equals
String tom="abc";
String jack="abc";
注意:tom==jack的值是false.因为字符串是对象,tom,jack是引用。
==比较的是内存地址。
equals比较的是字符串对象的值是否相等。
4、equalsIgnoreCase
比较时忽略大小写
tom.equalsIgnoreCase(anotherString)
5、compareTo
注意>0 <0 =0 三种情况
String s="abcde";
System.out.println(s.compareTo("boy"));//-1
System.out.println(s.compareTo("abca"));//3
System.out.println(s.compareTo("abcde"));//0
6、indexOf
s="abcdefabc"
s.indexOf("a");
s.indexOf("a",5);
7、substring
得到子串。
8.trim
去掉前后空格
9.replace
10.tostring
一个对象的字符串表示。
二、String常用类型转换.
1)转换为整型
java.lang包。
Integer.parseInt("12345"); //
long.parselong("12789"); //长整型
2)转换为float或double
float.valueof("12578.25").floatValue;
double.valueof("1234.56").doubleValue;
3)数值转换为字符串
String.valueof(XXX)
三、难点详解
1. == : 基本数据类型都用这个比较,
Java里面包含8个基本数据类型,分别是:
boolean、byte、char、short、int、float、double、long
注意String 可不属于基本数据类型,它是个类...
2..equals() 用于引用数据类型(除了上面的8个,都是引用数据类型,包括封装类,Object子类等), 比较是否指向相同的对象,
例如 String str = "abc";
等效于: char data[] = {'a', 'b', 'c'}; String str = new String(data);
就是str 指向了 new String(data) 这个对象. 如果再有其他变量也指向这个对象,他们比较的结果就返回true;
由于此方法在Object里, 所以它有很多重写, 具体要看说明;
另外``` equalsIgnoreCase()可以忽略大小写;
3. compareTO可以比较两个字符串并且得到顺序.
按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。
--------------------------------------------------------------------------------------
1、== 和 equals的区别:
==主要是两个变量值的比较,返回值为true 或者是false。对于普通变量,如:int a=10; int b= 10; a==b,返回为 true。
而对于下面情况:
String a=new String("abc");
String b=new String("abc");
a==b; 返回的则是一个false。这是因为,对于对象的比较是对对象引用的比较,对于a和b ,他们在内存中对应的地址是不一样的,所以 a==b 返回的值是一个false.
==操作符并不涉及对象内容的比较。若要对对象内容进行比较,则用equals. 如果 在本例中,a.equals(b)则返回是一个true值。
总而言之,==是对对象地址的比较,而equals是对对象内容的比较。对于基本数据类型,一般用==,而对于字符串的比较,一般用equals
2、对于compareTo(), 在API中,java.lang包下面的基本数据类型的封装类都提供了该方法,如 Integer,Float,Byte,Short,Character 等
在基本数据中,compareTo()是比较两个Character 对象;
在 Boolean中,是用boolean的实例于其它实例进行比较;
在String 中,则是按照字典顺序进行比较,返回的值是一个int 型。
贴一段代码
public class Test{
public static void main(String args[]){
String s1=new String("abc");
String s2=new String("abc");
System.out.println((s1==s2)? "true":"false");
System.out.println((s1.equals(s2))? "true":"false");
if(s1.compareTo(s2)==0){
System.out.println("s1 is equal s2");}
s1=s2;
System.out.println((s1==s2)? "true":"false");
}
}程序的运行结果为:
false
true
s1 is equals s2
true
这里需要说明的一点,s2对象赋值给s1之后,s2和s1的引用其实是指向了内存中的同一个位置。所以,再进行比较时,就是true.