java 中处处都是字符串,今天总结下字符串的相关内容。
定义:字符串经常被作为String类型的对象处理,String被包含在java.util包中。
String对象的不变性:String对象创建后是不能被修改,是不可变的,其实是指修改就是重新创建了对象,改变了对象引用地址,但是之前地址中的字符串还是存在的。
下面例子简单说明了String的定义以及常用的方法:
import java.util.Arrays;
public class TestString {
public static void main(String[] args) {
System.out.println("*********测试字符串的不变性********************");
String s1 = "I love code";
String s2 = "I love code";
//注意(s1 == s2)一定要加括号提高运算优先级
System.out.println("s1 == s2 " + (s1 == s2));//true
String s3 = new String("I love code");
String s4 = s3 + "!";
System.out.println("s1 == s3 " + (s1 == s3));//false
System.out.println("s3 == s4 " + (s3 == s4));//false
System.out.println("***********学习字符串的常用方法******************");
String s5 = "I love code , code is beautiful ";
System.out.println(s1.length());//字符串的长度
System.out.println(s1.indexOf('o'));//某个字符在字符串中第一次出现的地方
System.out.println(s5.indexOf("code"));//某个子字符串在字符串中第一次出现的地方
System.out.println(s1.lastIndexOf('o'));//某个字符在字符串中最后一次出现的地方
System.out.println(s5.lastIndexOf("code"));//某个子字符串最后一次出现的地方
System.out.println(s1.substring(2));//获取从下标2开始到结尾的字符串
System.out.println(s1.substring(2, 6));//获取从下标2开始到下标为6但是不包括6的字符串
System.out.println(s5.length());
s5 = s5.trim(); //去除字符串的前后空格
System.out.println(s5.length());
System.out.println(s1.equals(s2));//比较两个字符串的内容是否相等
System.out.println(s1.equals(s3));//比较两个字符串的内容是否相等
System.out.println(s5.toLowerCase());//转换为小写
System.out.println(s5.toUpperCase());//转换为大写
System.out.println(s5.charAt(21));//获取第21个下标处的字符
String[] s5Str = s5.split(" ",4);//按照空格截取字符,截至至数组长度为4个为止
System.out.println(s5Str.length);
for (int i = 0; i < s5Str.length; i++) {
System.out.println(s5Str[i]);
}
String[] s5Strs = s5.split(" ");//按照空格截取字符
System.out.println(Arrays.toString(s5Strs));//
for(int i = s5Strs.length - 1; i >= 0; i--) {
System.out.print(s5Strs[i] + " ");
}
System.out.println();
byte[] bt = s5.getBytes();
for(byte b : bt) {
System.out.print(b + " ");
}
}
}
StringBuilder的常用方法
public class TestStringBulider {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();//定义
sb.append("I Love code"); //向sb变量中添加字符串
System.out.println(sb);
StringBuilder sb2 = new StringBuilder("I Love Code");//定义
System.out.println(sb2);
System.out.println(sb2.length());
StringBuilder str = new StringBuilder();
str.append("abcdefghijklmopq");
//从后往前每隔三位插入逗号
for(int i = str.length() - 3; i >= 0; i-=3) {
str.insert(i, ",");//插入方法,在第i个下标的地方插入逗号。
}
System.out.println(str.toString());
}
}