String是Java基本的数据类型,但是是不可变的,如何修改String中特定的字符呢?
我们要先了解到char可以被修改,所有把String类型转化为char,然后再修改char,以达到修改String特定字符的目的。
1.String转化为char
String str = new String("One");
char a = str.charAt(0);//获取特定String中的某个字符
System.out.println(a);
char[] chars = str.toCharArray();//将整个String字符串转化为char类型的数组
System.out.println(chars);//输出整个字符串
for(int i = 0;i < chars.length;i++){//将String作为char数组中的元素依次输出
System.out.println(chars[i]);
}
2.char转化为String
char c = 'c';//单个char字符
//方法一:
String s = String.valueOf(c);//通过String.valueOf()将char转化为String
//方法二:
String s2 = Character.toString(c);//通过Character.toString()将char转化为String
System.out.println(s+s2);
//以上两种方法都可以将单个字符的char转化为String,如果是char[]方法二则不能使用
char[] chars1 =new char[]{'1','2','3','4','s'};
String s1 = String.valueOf(chars1);
System.out.println(s1);
3.相互转换修改String字符串中某个特定的字符
//方法一:
//将字符串123改为133
String str = "123";
char[] chars = str.toCharArray();
chars[1] = '3';//将2改为3
String str1 = String.valueOf(chars);
System.out.println(str1);//133
//方法二:
StringBuilder sb = new StringBuilder(str);
sb.setCharAt(1,'3');
System.out.println(sb);
也可以利用StringBuilder的setCharAt()方法,将特定index,特定位置的字符进行更改。