gpt4 book ai didi

Java 方法 split() 不适用于逗号,数组越界

转载 作者:行者123 更新时间:2023-12-03 21:46:24 25 4
gpt4 key购买 nike

我正在尝试分隔用户输入的地址字符串,该字符串以逗号分隔。例如,如果用户输入地址

“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]);


}
}

这里出了什么问题?

最佳答案

问题是您正在使用 next()使用<space>作为分隔符。给定输入为:

4367, 56th Avenue, Vancouver, BC, V4K1C3

使用 next() , 你最终 fullAddress = "4367," .在 split 你得到 arr = ["4367"] ,因此您在 arr[1] 处得到异常.

使用 nextLine()相反。

String fullAddress = input.nextLine();

关于Java 方法 split() 不适用于逗号,数组越界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32881386/

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