【发布时间】:2019-05-21 09:00:24
【问题描述】:
我们如何在 Java 中用空白替换特定的 char 常量?
\0 替换为空格字符而不是空格。
输入:
String amount = "1.22.33,11";
想要的结果:12233,11
【问题讨论】:
-
空白字符在哪里?
我们如何在 Java 中用空白替换特定的 char 常量?
\0 替换为空格字符而不是空格。
输入:
String amount = "1.22.33,11";
想要的结果:12233,11
【问题讨论】:
String amount = "1.22.33,11";
String result = amount.replace(".", "");
System.out.println(result);
输出:
12233,11
无需使用正则表达式或外部依赖项。
String 类的replace(CharSequence target, CharSequence replacement) 方法将每次出现的文字目标字符串替换为替换字符串。因此,只需将空字符串作为替换即可。
您的任务可能被描述为删除出现的.。所以用“空白”字符替换,不管是什么,都不是正确的解决方案,你仍然会有一些字符。相反,我们将一个单字符 string 替换为另一个没有字符的字符串。
正如@Lino 在 cmets 中指出的那样,JDK 版本高达至少 8(我没有检查过 9 和 10)在每次调用该方法时将正则表达式编译为 Pattern。在 Java 11 中提供了一个高效的实现。
【讨论】:
您可以为此使用正则表达式:
String result = amount.replaceAll("\\.", "");
\. 匹配每个文字句点 (.) 并将其替换为空字符串 ("")
如果将正则表达式保存为 java.util.regex.Pattern 到变量中,则可以进一步优化:
private static final Pattern DOT = Pattern.compile("\\.");
然后你可以像这样使用它:
String result = DOT.matcher(amount).replaceAll("");
【讨论】: