在java中删除字符并替换另一个字符
我试着做两件事:
- 如果字符串以结尾且辅音在前面,则删除“S”李>
- 如果字符位于两个元音之间,则替换字符串中的所有“S”李>
这是我现在的代码:
public class Phonias{
static String[] consonnant={"B","C","D","F","G","H","J","K","L","P","Q","R","S","T","V","W","X","Z"};
static String [] vowels={"A","E","I","O","U","Y"};
public static String phonias1(final String str){
if (str == null){
return "null";
}
if(str==""){
return "";
}
if (str.contains("S")){
}
for (int i = 0; i < consonnant.length; i++) {
if(str.endsWith(consonnant[i]+"S") && str.length()>3){
String temp = str.replaceAll(consonnant[i]+"S",consonnant[i]+"");
return temp;
}
}
for (int i = 0; i < vowels.length; i++) {
if( str.contains(vowels[i]+"S"+vowels[i])){
return str.replace("S"+vowels[i], "Z"+vowels[i]);
}
}
return str;
}
}
我所有的测试都运行良好,除了“ISISIDORET”,它返回我“ISISIDORET”
# 1 楼答案
在第一个循环中返回
temp
,因此第二个循环永远不会执行。只需更新tampon
并在最后返回它。像这样: