首页 > 代码库 > java string常见操作题

java string常见操作题

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 = "ab@cd 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");

java string常见操作题