Java methood split()不使用逗号,数组超出范围

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)