急!!这个简单的WHILE循环JAVA得到的结果与我想要的不一样

来源:百度知道 编辑:UC知道 时间:2024/05/29 15:39:00
我想要的结果是去掉STR中的OAEUI这几个字母,结果为什么不尽人意
public class a{
public static void main(String[]args){
String str="aouiesaoeedf";
int num=0;
String delectAim="oeiau";
while(num<=str.length()-1){
String word=String.valueOf(str.charAt(num));
if( delectAim.indexOf(word)>=0) str=str.replace(word,"");
num++;
}

System.out.println(str);}}

原因是替换后字符长度变短,有些字母位置会靠前,而没有参与比较。
public class Test{
public static void main(String[] args)
{
String str="aouiesaoeedf";
int num=0;
String delectAim="oeiau";
while(num<=str.length()-1){
String word=String.valueOf(str.charAt(num));
if( delectAim.indexOf(word)>=0)
str=str.replace(word," ");
num++;
}
str=str.replace(" ","");
System.out.println(str);
}
}

你的str不是一个数组,它会有长度吗