Java 转换器中的字符串错误
因此,我的代码适用于某些单词,但不适用于其他单词。它冲刺出超出范围的字符串索引:-1 我想在每个元音和元音簇之前打印出ub “前可疑”就是“可疑”,或者“猫爱”就是“卢波维多” 字符串语句,集合Java 转换器中的字符串错误,java,string,char,Java,String,Char,因此,我的代码适用于某些单词,但不适用于其他单词。它冲刺出超出范围的字符串索引:-1 我想在每个元音和元音簇之前打印出ub “前可疑”就是“可疑”,或者“猫爱”就是“卢波维多” 字符串语句,集合 sentance = "toster iooppp"; set= translate(sentance); System.out.println(set); } public static String translate (String sentence
sentance = "toster iooppp";
set= translate(sentance);
System.out.println(set);
}
public static String translate (String sentence){
String set = " ";
sentence= sentence.toLowerCase();
scan = new Scanner (sentence);
while (scan.hasNext()) {
set+= toUbbi (scan.next());
set += " ";
}
return set;
}
private static String toUbbi(String word ) {
String str= word;
String new_str="";
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (isVowel(c) && isVowel(str.charAt(i -1)) )
{ // If is a vowel
new_str += "ub" ;
}
new_str += c;
}
return new_str;
}
private static boolean isVowel(char c)
{
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ){
return true;}
return false;
sentance=“toster iooppp”;
集合=翻译(句子);
系统输出打印项次(套);
}
公共静态字符串翻译(字符串句子){
字符串集=”;
句子=句子。toLowerCase();
扫描=新扫描仪(句子);
while(scan.hasNext()){
set+=toUbbi(scan.next());
设置+=“”;
}
返回集;
}
私有静态字符串toUbbi(字符串字){
字符串str=单词;
字符串new_str=“”;
对于(int i=0;i
在第一次迭代中,它给出了错误
if (isVowel(c) && isVowel(str.charAt(i -1)) )
{ // If is a vowel
new_str += "ub" ;
}
所以像这样改变
if (isVowel(c))
{ // If is a vowel
new_str += "ub" ;
}
或者改变你的循环
for (int i = 1; i < str.length(); i++) {
// yur remain code...
}
for(int i=1;i
此代码不完整-两边都缺少行。cat loveo不是Lubovubeo吗?我怀疑您的逻辑不正确,当您让它不崩溃时,您可能会发现它给了您错误的答案。我会手动查看toUbbi
的工作原理。同时确保逻辑正确在边界处需要什么,即i
为0时,以及str.length()-1时。