java string常见操作题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 = "[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");

以上是关于java string常见操作题的主要内容,如果未能解决你的问题,请参考以下文章

Java之String相关内容详解(字符串和字符串常量池)面试题

面试题中关于String的常见操作

JAVA常见算法题

JAVA常见算法题(二十九)

JAVA常见算法题(二十三)

常见的Java面试题整理