我正在尝试将包含状态和大写的文件中的字符串添加到两个arraylists中。我的问题是,有些州/首都在一个要素中有两个我想要的词。 这就是我的文件的样子
California Sacramento
New Hampshire Concord
我希望arraylist看起来像这样
states[0] - California
capitals[0] Sacramento
states[1] New Hampshire
capitals[1] Concord
但它打破了我不想要的两个字状态或大写字母
states[1] = New
states[2] = Hampshire
这是我的代码
public class InputOutput
{
public static void main(String[] args) throws IOException
{
ArrayList<String> states = new ArrayList();
ArrayList<String> capitals = new ArrayList();
File f = new File("US_states.txt");
Scanner input = new Scanner(f);
while(input.hasNextLine());
{
states.add(input.next());
capitals.add(input.next());
}
}
}
答案 0 :(得分:0)
引自java.util.Scanner
API:
扫描程序使用分隔符模式将其输入分解为标记,分隔符模式默认匹配空格。
您的Scanner
没有预定义的分隔符,因此会在空格上进行标记。
您很难设置上下文分隔符,而不事先告知您的程序New
和Hampshire
之间的空格与California
和{之间的空格不一致{1}}。
如果您可以控制文本文件,请考虑在州和大写之间设置一个特定的分隔符,然后在Sacramento
中进行设置。
否则你可能会陷入困境。