Java学习:飘逸的字符串html
相信无论咱们运用Java语言来开发项目仍是进行数据分析处理,都要运用到和字符串相关的处理方法。这个社会到处有着和字符串相关的影子:日志、文档、书籍等。既然咱们离不开字符串,那么就来好好认识一下吧。java
在Java语言里,有两种方法来建立一个字符串对象:一是用字符串直接量数组
1 String message=new String("Welcome to Java"); 2 String message2="Welcome to Java";
二是经过字符数组。学习
1 char[] array={'G','o','o','d',' ','D','a','y'}; 2 String message3=new String(array);
注意:String变量存储的是对String对象的引用,String对象里存储的才是字符串的值。因此严格的说,术语String变量、String对象和字符串值是不一样的,只是日常咱们为了简单起见,都统称为字符串而已。spa
String对象是不可变的,它的内容是不能改变的。好比下面的两行代码:日志
1 String s="Java"; 2 s="html";
第一条语句建立了内容为“Java”的String对象,并将其引用赋值给s。第二条语句建立了一个内容为“html”的新String对象,并将其赋值给s。因此执行这两条语句以后,两个String的对象都没有改变,而且其中的内容也没有发生变化,只是s变量最后指向了新的String对象。code
一旦看到比较两字,咱们想到的是“==”。然而,运算符==只能检测字符串String1和String2是否指向同一个对象,但它不会告诉咱们它们的内容是否相同。所以Java里面判断字符串是否相同,咱们应该使用equals方法或者compareTo方法。htm
1 String s1=new String("Welcome to Java"); 2 String s2="Welcome to Java"; 3 String s3="Welcome to C++"; 4 String s4="welcome TO java"; 5 System.out.println(s1.equals(s2)); 6 System.out.println(s1.equals(s3)); 7 System.out.println(s1.compareTo(s2));
补充:当比较两个字符串是否相等的时候,方法equalsIgnoreCase和compareToIgnoreCase能够先忽略字母大小写而后进行比较。对象
1 System.out.println(s1.equalsIgnoreCase(s4)); 2 System.out.println(s2.compareToIgnoreCase(s4));
length是String类的一个方法,但它是数组对象的一个属性,因此,咱们要获取字符串s的字符个数,就要使用s.length()。方法s.charAt(index)可用于提取字符串s的某个特定字符,其中下标index的取值范围在0到s.length()-1之间。blog
另外,咱们可使用concat方法链接两个字符串。以下代码所示,将字符串s1和s2链接构成了s3。
1 String ss="BaiYi"; 2 String ss2="ShaoNian"; 3 String ss3=ss.concat(ss2); 4 System.out.println(ss3);
固然了,好像日常咱们更倾向于更简单的方法,那就是直接使用加号(+)来链接两个或者更多的字符串构成新的字符串。
前面已经提到了咱们能够经过charAt方法来获取字符串的任意一个单字符,可是获取它的子串应该怎么办呢?咱们就用substring方法。
1 System.out.println("Welcome to Java".substring(0,11) + "C++");
toLowerCase:返回将全部字符都转换为小写以后的新字符串
toUpperCase:返回将全部字符都转换为大写以后的新字符串
trim:返回去掉两端的空白字符以后的新字符串
replace:返回用一个新子串替换这个字符串中全部和它匹配的字符的新字符串
replaceFirst:返回用一个新子串替换这个字符串中第一个和它匹配的子串以后的新字符串
replaceAll:返回用一个新子串替换这个字符串中全部和它匹配的子串以后的新字符串
split:返回用定界符分隔的子串所构成的一个字符串数组
1 System.out.println("Welcome TO".toLowerCase()); 2 System.out.println("Welcome to".toUpperCase()); 3 System.out.println(" Welcome to ".trim()); 4 System.out.println("Welcome to".replace('e','A')); 5 System.out.println("Welcome to".replaceFirst("e","ABC")); 6 System.out.println("Welcome to".replaceAll("e","AB")); 7 8 String[] str="Java#HTML#C++".split("#",0); 9 for (int i=0; i<str.length; i++) { 10 System.out.println(str[i] + " "); 11 } 12 String[] str2="Java#HTML&C++".split("[#&]",0); 13 for (int i=0; i<str2.length; i++) { 14 System.out.println(str2[i] + " "); 15 }