java Replace chars而不使用String Replace()方法
编写一个名为game
的方法,它接受一个普通单词(参数数据类型:String
),并将其转换为B游戏的单词。B-Game的工作原理是在单词的每个元音(a、e、i、o、u)上加上一个b
加上发音重复
例如:
- 传递的字符串:
play with me
- 返回的字符串:
plabay wibith mebe
我的代码:
public static void main(String[] args) {
String s="play with me";
char[] chars = s.toCharArray();
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i=0;i<chars.length;i++) {
if(chars[i]=='i' || chars[i]=='e' || chars[i]=='a' || chars[i]=='u' || chars[i]=='o' ) {
list.add(i); // add position to list
}
}
int size=chars.length+(list.size()*2);
char [] charsNew= new char[size];
for(int i=0;i<charsNew.length;i++) {
for(int f=0;f<chars.length;f++) {
charsNew[i]=chars[f];
System.out.println(java.util.Arrays.toString(charsNew));
}
}
}
我如何不使用replace()
就能做到这一点
# 1 楼答案
我会将字符串的字符流化,并用
b
s环绕每个元音:# 2 楼答案
显然,在(基本上)计算元音时,您不需要创建列表。只需使用整数进行计数(这将得到与构建列表和计算其大小相同的结果),但更容易理解,使用的资源更少。 接下来,分配内存来构建新字符串,如示例代码所示。没关系
然后填充新字符串。这只需要一个循环。我不明白你对内环的看法
您需要记住新字符串的索引,这不是循环计数器,因为如果遇到元音,它有时会增加3而不是1。循环遍历未修改的输入字符串。 复制下一个字符,并将索引增加到下一个字符串中1。 如果字符是元音,则在新字符串中添加一个“b”和元音,并将新字符串的索引增加2
你应该能够根据这个建议精心设计你的代码