关于useDelimiter的问题,试了好久还是不知道原理是什么
我遇到了一个题目,要从一个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++;
}
这是我程序的大体代码,请各位帮忙解决一下读取的问题,试验了很多次都不成功,谢谢了!
我的思路是建立一个二维数组来存储州名和相对应的首府名称,但是在读取文件的时候遇到了一些问题:
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++;
}
这是我程序的大体代码,请各位帮忙解决一下读取的问题,试验了很多次都不成功,谢谢了!
...全文
相关推荐
Java正则表达式Pattern和Matcher原理详解
主要介绍了Java正则表达式Pattern和Matcher原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
scanner的总结
这个能帮助学习java的人更清晰的理解scancer使用。
Java Scaner类详解_动力节点Java学院整理
Java.util.Scanner是Java5.0的新特征,主要功能是简化文本扫描。下面通过本文给大家分享java scaner类相关知识,需要的朋友下吧
Java中Scanner用法.doc
Java中Scanner类的用法,java初学者必看
密码转化代码
他是这么变换的,大家都知道手机上的字母: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,就这么简单,渊子把密码中出现的小写字母都变成对应的数字,数字和其他的符号都不做变换,声明:密码中没有空格,而密码中出现的大写字母则边成小写之后往后移一位,如:X,先变成小写,再往后移一位,不就是y了嘛,简单吧。记住,z往后移是a哦


Java SE
