coo*_*tts 2 java arrays indexing split
我试图分隔用逗号分隔的用户输入的地址字符串.例如,如果用户输入地址
"4367, 56th Avenue, Vancouver, BC, V4K1C3"
我希望和数组一起使用值
array ["4376", "56th Avenue", "Vancouver", "BC", "V4K1C3"]
使用索引0到4.但是,当我在我的一个类中实现它时,当我将值array[1]赋给变量时,我不断得到一个数组超出边界的错误- 好像所有内容都进入了数组的0索引.这是我写的一个片段,说明了这个问题:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String fullAddress = input.next();
String[] arr = fullAddress.split(",");
System.out.println(arr[0]);
System.out.println(arr[1]); //error java.lang.ArrayIndexOutOfBoundsException: 1
System.out.println(arr[2]);
System.out.println(arr[3]);
System.out.println(arr[4]);
}
}
Run Code Online (Sandbox Code Playgroud)
这里出了什么问题?
小智 7
问题是你正在使用next()哪个<space>用作分隔符.给定输入为:
4367, 56th Avenue, Vancouver, BC, V4K1C3
使用next(),你最终fullAddress = "4367,".你得到分裂arr = ["4367"],因此你得到例外arr[1].
请nextLine()改用.
String fullAddress = input.nextLine();
Run Code Online (Sandbox Code Playgroud)