gpt4 book ai didi

java - 字符串索引超出单词到电话号码转换的范围

转载 作者:行者123 更新时间:2023-12-01 11:17:13 25 4
gpt4 key购买 nike

所以我创建了这段代码来将单词转换为电话号码,但是当我尝试使用 7 个单词以下的字母运行此代码时,它将显示字符串索引超出范围。但7个或更多就可以了。我该如何解决?如果是这样我如何设置字符串范围?

{  
System.out.println("Enter a word to be converted: ");
String telLetter = console.next ();
telLetter = telLetter.toUpperCase();
String telNumber="7";
int count=0;
int i=0;
while(count <7)

{switch(telLetter.charAt(i))
{case 'A':case 'B':case 'C': case 'a': case 'b': case 'c':
telNumber += "2";
count++;
break;
case 'D':case 'E':case 'F': case 'd': case 'e': case 'f':
telNumber += "3";
count++;
break;
case 'G':case 'H':case 'I': case 'g': case 'h': case 'i':
telNumber += "4";
count++;
break;
case 'J':case 'K':case 'L': case 'j': case 'k': case 'l':

telNumber += "5";
count++;
break;
case 'M':case 'N':case 'O': case 'm': case 'n': case 'o':
telNumber += "6";
count++;
break;
case 'P':case 'R':case 'S': case 'p': case 'r': case 's':
telNumber += "7";
count++;
break;
case 'T':case 'U':case 'V': case 't': case 'u': case 'v':
telNumber += "8";
count++;
break;
case 'W':case 'X':case 'Y':case 'Z': case 'w': case 'x': case 'y': case 'z':
telNumber += "9";
count++;
break;
}
if( count==3) {
telNumber += "-";
}
i++;
}
System.out.println( telNumber );

}


}}

最佳答案

代码中的修复:

  1. 使用while(count < telLetter.length())代替while(count <7) ...
  2. telLetter.charAt(i)可以通过 (telLetter.charAt(count)) 删除...通过这样做,您不需要创建额外的变量 int i = 0; ...保持变量最小是一个很好的做法。
  3. 使用扫描仪获取输入...例如.. Scanner sc = new Scanner(System.in); String telLetter = sc.next(); ...
  4. 使用资源后,请使用 sc.close(); 关闭它们....
  5. 我还可以看到您正在附加 7在每个数字的开头...如果这是一个要求那么没问题..否则你可以使用... String telNumber="" ;
  6. 我建议使用 StringBuilder因为在一个对象中您可以完成所有操作.. 每次在 string 中附加一个字符时你正在不断地创造一个new string并给它引用telNumber
  7. 另外,在您的代码中删除 telLetter = telLetter.toUpperCase();或删除小写字母的大小写..因为在制作 toUpperCase() 时您只是通过为不需要的小写字符编写大小写来编写额外的行...

关于java - 字符串索引超出单词到电话号码转换的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31667350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com