从字符串数组中删除一个字符
removing a char from an array of Strings
我一直在尝试从字符串数组中删除特定字符,但一直失败。字符是“$”,我不知道我做错了什么所以希望有人能够指出正确的方向,我的代码:
for (int y = 0; y<possibleAnswers.length;y++) {
display = possibleAnswers[y].replaceAll("$", "");
System.out.println(display);
}
possibleAnswers 包含 4 个字符串,其中一个有一个“$”,我想在显示它之前将其删除。
当我运行上述代码时,显示“$”,有什么想法吗?
尝试
possibleAnswers[y].replaceAll("\$", "");
转义字符,因为$
是正则表达式中的特殊字符,并且由于replaceAll()
采用正则表达式,所以您传递的字符串无法识别。
您也可以使用 replace()
来获取字符串
possibleAnswers[y].replace("$", "");
您的代码的问题是 replaceAll()
需要 "regular expression"。 $ 字符在正则表达式中使用时具有特定含义。因此你有两个选择:
- 继续使用
replaceAll()
;那么你必须 "escape the special character";通过使用 replaceAll("\$", "")
或其他人指出的“[$]”。
- 使用不同的方法,例如
replace()
不需要 "regular expression pattern string"。
在您的代码中,$
在 regex
中是 keyword
,用于匹配 end of line
即 $。所以你必须 escape
如下所示。
display = possibleAnswers[y].replaceAll("\$", "");
replaceAll()
接受正则表达式,而不仅仅是字符。当您说“$”时,您并不是在告诉它匹配“$”字符,而是在匹配字符串的结束位置或字符串结尾之前的换行符之前。
您需要转义 '$',因此它知道只匹配字符,而不是将其视为特殊的正则表达式含义。
这样做:possibleAnswers[y].replaceAll("\$", "");
只需使用 possibleAnswers[y].replace("$", "");从字符串中删除“$”。
for (int y = 0; y < possibleAnswers.length; y++) {
display = possibleAnswers[y].replace("$", "");
System.out.println(display);
}
按照建议,我使用了替换方法而不是 replaceAll 并且它完成了工作。同时我学会了查看文档以更深入地了解这些方法。
感谢大家的帮助,真的很感激。
我一直在尝试从字符串数组中删除特定字符,但一直失败。字符是“$”,我不知道我做错了什么所以希望有人能够指出正确的方向,我的代码:
for (int y = 0; y<possibleAnswers.length;y++) {
display = possibleAnswers[y].replaceAll("$", "");
System.out.println(display);
}
possibleAnswers 包含 4 个字符串,其中一个有一个“$”,我想在显示它之前将其删除。
当我运行上述代码时,显示“$”,有什么想法吗?
尝试
possibleAnswers[y].replaceAll("\$", "");
转义字符,因为$
是正则表达式中的特殊字符,并且由于replaceAll()
采用正则表达式,所以您传递的字符串无法识别。
您也可以使用 replace()
来获取字符串
possibleAnswers[y].replace("$", "");
您的代码的问题是 replaceAll()
需要 "regular expression"。 $ 字符在正则表达式中使用时具有特定含义。因此你有两个选择:
- 继续使用
replaceAll()
;那么你必须 "escape the special character";通过使用replaceAll("\$", "")
或其他人指出的“[$]”。 - 使用不同的方法,例如
replace()
不需要 "regular expression pattern string"。
在您的代码中,$
在 regex
中是 keyword
,用于匹配 end of line
即 $。所以你必须 escape
如下所示。
display = possibleAnswers[y].replaceAll("\$", "");
replaceAll()
接受正则表达式,而不仅仅是字符。当您说“$”时,您并不是在告诉它匹配“$”字符,而是在匹配字符串的结束位置或字符串结尾之前的换行符之前。
您需要转义 '$',因此它知道只匹配字符,而不是将其视为特殊的正则表达式含义。
这样做:possibleAnswers[y].replaceAll("\$", "");
只需使用 possibleAnswers[y].replace("$", "");从字符串中删除“$”。
for (int y = 0; y < possibleAnswers.length; y++) {
display = possibleAnswers[y].replace("$", "");
System.out.println(display);
}
按照建议,我使用了替换方法而不是 replaceAll 并且它完成了工作。同时我学会了查看文档以更深入地了解这些方法。
感谢大家的帮助,真的很感激。