【发布时间】:2017-01-14 12:58:55
【问题描述】:
我正在为如何真正做到这一点而苦苦挣扎。说我有这个字符串
“这个 Str1ng i5 很有趣”
我想将“1”替换为“一”,将 5 替换为“五”
“这 StrOneng iFive 很有趣”
我尝试遍历字符串并手动替换它们,但计数已关闭。我也尝试过使用列表、数组、字符串生成器等,但我无法让它工作:
char[] stringAsCharArray = inputString.toCharArray();
ArrayList<Character> charArraylist = new ArrayList<Character>();
for(char character: stringAsCharArray) {
charArraylist.add(character);
}
int counter = startPosition;
while(counter < endPosition) {
char temp = charArraylist.get(counter);
String tempString = Character.toString(temp);
if(Character.isDigit(temp)){
char[] tempChars = digits.getDigitString(Integer.parseInt(tempString)).toCharArray(); //convert to number
charArraylist.remove(counter);
int addCounter = counter;
for(char character: tempChars) {
charArraylist.add(addCounter, character);
addCounter++;
}
counter += tempChars.length;
endPosition += tempChars.length;
}
counter++;
}
我觉得必须有一种简单的方法来用子字符串替换字符串中的单个字符,而不必进行所有这些迭代。我错了吗?
【问题讨论】: