1.string.操作方法,默认会生成一个新的string保存在常量池中,不会改变原来常量池中的string。
因为常量池,string是final的,一经创建无法改变。
看下面代码:
String str = "abcde"; str.toUpperCase(); System.out.println(str); //输出还是abcde,而非ABCDE。因为string是final的,string的改变内容的操作方法会生成一个新的string在常量池中。
2.引用变量指向常量池中的新的str
String str = "abcde"; str = str.toUpperCase(); System.out.println(str);//常量池中新生成一个string,以前的引用变量指向新地址
3.字符串反转,用string缓存类,stringBuffer或者stringBuilder.
因为string缓存类,预先在堆内存中开辟一个16字符的存储空间,借以不断改变string的值
String str = "abcde"; StringBuilder stringBuilder = new StringBuilder(str); stringBuilder.reverse(); str = stringBuilder.toString(); System.out.println(str);//输出edcba
stringBuilder是在堆内存开辟一个存储空间,对stringBuilder的修改全是在修改stringBuilder对象内存本身。
4.判断字符串是否对称:
String str = "abcde"; StringBuilder stringBuilder = new StringBuilder(str); String str2 = stringBuilder.reverse().toString(); System.out.println(str==str2);
5.输出字符串的子串,比如string str = "@abc efg . ghk";
string[] strArray = string.split("byChar");
string.split(“byChar”)方法
要求输出abc efg ghk
String str = "[email protected] ghk efg"; str = str.replaceAll("@", " "); String[] strArray = str.split(" "); for(String str1:strArray) { System.out.println(str1); }
5. 编写一个程序,将下面的一段文本中的各个单词的字母顺序翻转,
“To be or not to be",将变成"oT eb ro ton ot eb."。
public static void main(String[] args) { String s = "To be or not to be"; String ss[] = s.split(" "); StringBuffer sb2 = new StringBuffer(); for (int i = 0; i < ss.length; i++) { StringBuffer sb = new StringBuffer(ss[i]); sb.reverse(); sb2.append(sb); if(i == ss.length-1){ sb2.append("."); }else{ sb2.append(" "); } } System.out.println(sb2); }
6.String s=”name=zhangsan age=18 classNo=090728”;
将上面的字符串拆分,结果如下:
zhangsan 18 090728
public static void main(String[] args) { String s="name=zhangsan age=18 classNo=090728"; String[] ss = s.split(" "); StringBuffer sb =new StringBuffer(); for (int i = 0; i < ss.length; i++) { String[] ss2 =ss[i].split("="); sb.append(ss2[1]); sb.append(" "); } System.out.println(sb); }
总结:字符串的常见操作无非几种
1.字符串反转 用stringBuilder.reverse();
2.字符串切割String[] strArray = str.spilt("spiltChar");
3.字符串拼接 用stringBuilder.append("str");
时间: 2024-10-24 22:01:47