我正在试图找出一种方法来取一个字符串并用越来越多的数字替换所有元音。
例如:
"abcdef" --> "0bcd1f"
我尝试用单个符号替换所有元音,然后尝试用越来越多的数字替换每个符号。但这不起作用,因为我将word2
设置为仅用于实例的东西。
public static String getNumberString( String s) {
String word = s;
String word1 = word.replaceAll("[AEIOUaeiou]", "@");
int c = 0;
for( c = 0; c <= word.length(); c++) {
String word2 = word1.replaceFirst("@", Integer.toString(c));
}
return "";
}
任何帮助表示感谢。
答案 0 :(得分:1)
以下应该工作。截至目前,你总是返回空字符串。
除此之外,在java String
中是不可变的,因此您需要更新word2
以在每次迭代中具有不同的String
值。
public static String getNumberString( String s)
{
String word = s;
String word1 = word.replaceAll("[AEIOUaeiou]", "@");
int c = 0;
String word2 = word1;
for( c = 0; c <= word.length(); c++)
{
word2 = word2.replaceFirst("@", Integer.toString(c));
}
return word2;
}
答案 1 :(得分:1)
这是有效的,并且是相当整洁的代码:
public static String getNumberString(String s) {
for (int i = 0; s.matches(".*[AEIOUaeiou].*"); i++)
s = s.replaceFirst("[AEIOUaeiou]", Integer.toString(i));
return s;
}
为什么它花了很少的代码:
'@'
替换所有元音)