【发布时间】:2016-05-13 16:30:46
【问题描述】:
Scanner s=new Scanner(System.in);
String str=s.nextLine();
str.charAt(2)='a';
我用过 substr 函数。但是没有它可以做到吗?为什么这个说法不正确?
【问题讨论】:
Scanner s=new Scanner(System.in);
String str=s.nextLine();
str.charAt(2)='a';
我用过 substr 函数。但是没有它可以做到吗?为什么这个说法不正确?
【问题讨论】:
字符串在 JAVA 中是不可变的。您可以将其转换为字符数组,然后更改字符。
String str = s.nextLine();
char[] chrArray = str.toCharArray();
chrArray[2] = 'a';
如果你想要一个字符串,那么你可以这样做:
String finalStr = new String(chrArray);
【讨论】:
你可以像这样使用setCharAt:
StringBuilder string = new StringBuilder(str);
string.setCharAt(2, 'a');
或char[]数组:
char[] nameChars = str.toCharArray();
nameChars[2] = 'a';
【讨论】:
StringBuilder myName = new StringBuilder(str);而不是StringBuilder myName = new StringBuilder("str");
StringBuilder sb =new StringBuilder(str);
System.out.println(" string is : "+sb.replace(2, 3, "a"));
sb.replace(开始索引,结束索引,替换字符串)
起始索引 ;- 字符串起始索引
end index ;- end index 例如如果你想替换单个字符然后开始 2 和结束 3
【讨论】: