关于useDelimiter的问题,试了好久还是不知道原理是什么

leogriv leogriv 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我遇到了一个题目,要从一个txt文件中读取美国的州以及州的首府,然后让用户来输入随机出现的州的首府的名字,判断是否写对了

我的思路是建立一个二维数组来存储州名和相对应的首府名称,但是在读取文件的时候遇到了一些问题:

1. txt文件中的格式基本如下:
Alabama - Montgomery
Alaska - Juneau
Arizona - Phoenix
Arkansas - Little Rock
California - Sacramento
当我以空格来作为分隔符的时候,例如像Little Rock这样的首府名称就会被拆分成了两个单词,从而导致数组长度超出

2. 有些州的名字例如 North Carolina这样的,本身就会有一个空格在里面,就会出现同样的问题,我对于第一个问题的解决方法是用.nextLine来读取,这样就能把整个首府的名称都读取在一个数组空间里面,但是对于州的名字用什么办法才能完整的读取而不被空格影响呢

3. 对于中间的那个“-”该怎么处理呢,我用了useDelimiter("- ")这样的方法来处理,但是老是得不到理想的结果,不知道该怎么写参数才能正确读取格式

File myFile = new File("d:\\stateCapitals.txt");

Scanner input = new Scanner(myFile).useDelimiter(" -");
Scanner input1 =new Scanner(myFile).useDelimiter(" ");

String[][] SC = new String[50][3];


int b = 0;
while (input.hasNext()) {

SC[b][0] = input.next();
SC[b][1] = input1.next();
SC[b][2] = input.nextLine();
b++;

}

这是我程序的大体代码,请各位帮忙解决一下读取的问题,试验了很多次都不成功,谢谢了!
...全文

相关推荐

评论 8
收藏 已收藏
分享
返回顶部
leogriv
Java SE 62,620 成员 307,251 内容