Java 如何在单独的方法中编辑字符串中的特定字符? 公共静态字符串替换感叹号(字符串userText){ int i=0; 对于(i=0;i
我正在尝试替换所有的“!”在带有“.”的字符串中,但我遇到了意外的类型错误。Java 如何在单独的方法中编辑字符串中的特定字符? 公共静态字符串替换感叹号(字符串userText){ int i=0; 对于(i=0;i,java,string,methods,Java,String,Methods,我正在尝试替换所有的“!”在带有“.”的字符串中,但我遇到了意外的类型错误。 这意味着什么?我如何修复它 另外,用户文本来自main而不是此本地方法是否会影响我编辑字符串的能力?string是不可变的,如果替换string中的任何字符,则会创建新的string对象,因此我更喜欢使用StringBuilder public static String replaceExclamation(String userText){ int i = 0; for ( i=0; i < us
这意味着什么?我如何修复它
另外,用户文本来自main而不是此本地方法是否会影响我编辑字符串的能力?
string
是不可变的,如果替换string
中的任何字符,则会创建新的string
对象,因此我更喜欢使用StringBuilder
public static String replaceExclamation(String userText){
int i = 0;
for ( i=0; i < userText.length(); ++i) {
char currentChar = userText.charAt(i);
if (currentChar == '!') {
userText.charAt(i) = ".";
}
}
return userText;
}
或者您可以使用replaceAll(字符串正则表达式,字符串替换)
String
实例是不可变的。为了“编辑”一个字符串
,您必须创建一个新实例,请参阅。您还试图将“
分配给一个无效的方法调用。在userText.charAt(i)=”中,左侧是一个值,而不是一个变量。
public static StringBuilder replaceExclamation(StringBuilder userText){
int i = 0;
for ( i=0; i < userText.length(); ++i) {
char currentChar = userText.charAt(i);
if (currentChar == '!') {
userText.setCharAt(i,'.');
}
}
return userText;
}
String result = userText.replace('!', '.');
String result = userText.replaceAll("!", ".");