【发布时间】:2014-02-01 05:36:46
【问题描述】:
我需要在 java 中找到一种类似的巧妙方法来执行多字符串替换,就像在 php 中使用 str_replace 执行此操作一样。
我想获取一个字符串,然后返回一个字符串,其中数字 1 到 10 替换为这些数字的单词。
“我赢了 10 场比赛中的 7 场,获得了 30 美元。” => “我赢了十场比赛中的七场,获得了 30 美元。”
在php中,你可以这样做:
function replaceNumbersWithWords($phrase) {
$numbers = array("1", "2", "3","4","5","6","7","8","9","10");
$words = array("one", "two", "three","four","five","six","seven","eight","nine","ten");
return str_replace($numbers,$words,$phrase);
}
我不确定是否有一种优雅的方法可以使用 String.replace() 在这种特殊情况下执行正则表达式,并且我不想使用我认为是蛮力的方法来执行此操作:就像这里: How to replace multiple words in a single string in Java?。
【问题讨论】:
-
检查这个stackoverflow.com/questions/1326682/…或者你可以尝试使用Apache Commons StringUtils.replaceEach() commons.apache.org/proper/commons-lang/apidocs/org/apache/…
-
@pomkine - 我也查看了该解决方案,想知道是否还有其他方法可以做到这一点。
-
在内部,
str_replace迭代数组...... Java 也是如此。