gpt4 book ai didi

java - 使用 chararray 的字符串索引越界异常

转载 作者:太空宇宙 更新时间:2023-11-04 13:19:33 24 4
gpt4 key购买 nike

以下代码应该将电话号码字符转换为实际的电话号码整数。例如,800-NEXT-DAY = 800-639-8329。但无论我在 result.substring 索引中输入什么,我都会得到字符串索引超出范围的部分,但我不知道为什么。尝试找出解决方法。

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String result = " ";
System.out.print("Enter a phone number");
String initialNumber = input.nextLine();

for(char c: initialNumber.toLowerCase().toCharArray());
switch(c){
case '0': result+="0";
case '1': result+="1";break;
case '2': case 'a': case 'b': case 'c': result+="2";break;
case '3': case 'd': case 'e': case 'f': result+="3";break;
case '4': case 'g': case 'h': case 'i': result+="4";break;
case '5': case 'j': case 'k': case 'l': result+="5";break;
case '6': case 'm': case 'n': case 'o': result+="6";break;
case '7': case 'p': case 'q': case 'r': case 's': result+="7";break;
case '8': case 't': case 'u': case 'v': result+="8";break;
case '9': case 'w': case 'x': case 'y': case 'z': result+="9";break;
}
String s1 = result.substring(0, 3);
String s2 = result.substring(3, 6);
String s3 = result.substring(6, 9);

System.out.print(s1+s2+s3);
}}

最佳答案

for 循环末尾的分号结束了 for 循环。您不想结束 for 循环。结束 for 循环不允许 result 使用 switch 语句进行更新,从而导致在调用 result.substringresult 仍然是 ""。将您的 ; 更改为 {

for(char c: initialNumber.toLowerCase().toCharArray()){
switch(c){
case '0': result+="0";
case '1': result+="1";break;
case '2': case 'a': case 'b': case 'c': result+="2";break;
case '3': case 'd': case 'e': case 'f': result+="3";break;
case '4': case 'g': case 'h': case 'i': result+="4";break;
case '5': case 'j': case 'k': case 'l': result+="5";break;
case '6': case 'm': case 'n': case 'o': result+="6";break;
case '7': case 'p': case 'q': case 'r': case 's': result+="7";break;
case '8': case 't': case 'u': case 'v': result+="8";break;
case '9': case 'w': case 'x': case 'y': case 'z': result+="9";break;
}
}

还要在末尾添加 }。这解决了您遇到的索引越界问题。

关于java - 使用 chararray 的字符串索引越界异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33219678/

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