【发布时间】:2012-02-28 07:12:35
【问题描述】:
考虑以下输入:
String[] input = {"a9", "aa9", "a9a9", "99a99a"};
在使用 StringBuilder 将字母表中紧接在 9 之前的任何数字替换为它之后的下一个字母时,最有效的方法是什么?
处理这些输入后,输出应为:
String[] output = {"b9", "ab9", "b9b9", "99b99a"}
我一直在摸不着头脑,StringBuilder.setCharAt 是我能想到的最佳方法。
任何意见或建议将不胜感激。
【问题讨论】:
-
如果按预期工作,这种方法有什么问题?
-
我不认为你可以用正则表达式来做到这一点......
-
@LouisWasserman:是的,你可以,请看下面我的回答。
-
啊,我明白了。当然,如果您使用
Matcher逐步构建结果,则可以使用正则表达式来完成;我以为你的意思是打一个replaceAll电话。 -
确实如此。不知道你为什么要使用正则表达式来做这么简单的事情,尤其是当这样做的代码比不需要的代码长时。
标签: java string stringbuilder