我在名为avar.txt的文件中有一系列行。在文件中,我尝试读取一个不以'£'字符开头的数字。为此,我写了下面的代码但是,我不知道如何获得它的数字。是否有可能直接从文件中获取数字而不是我的方法,实际上我的方法不起作用?
£Life <--------------- do not read
£No File Name Contents <--------------- do not read
00 life.all ...
£01 life.prt ... <--------------- do not read
03 life.all ...
11 life.pl ...
£Expectation <--------------- do not read
£No File Name Contents <--------------- do not read
13 expectation.ops ...
04 expectation.at ...
£05 expectation.anil ... <--------------- do not read
预期读数; 00,03,11,13,04
请注意,每个数字都以<tab(i.e. whitespace)><number>
我没有工作的代码,(我不知道如何从中提取数字)
FileReader file = new FileReader("avar.txt");
BufferedReader read = new BufferedReader(file);
for( String tmp = null ; tmp = read.readLine() != null;){
number.add(tmp);
}
答案 0 :(得分:0)
我假设您只想使用该号码。如果您想使用其余部分,请更新您的帖子,我会更新答案。
因此,只有数字,您可以执行以下操作:
Scanner in = new Scanner(new FileInputStream("Avar.txt"));
while(in.hasNextLine){
Scanner lineScanner = new Scanner(in.nextLine());
if(lineScanner.hasNextInt()){
int x = lineScanner.nextInt();
// do something with x
}
}
这将逐行读取您的输入。对于每一行,如果行以int开头(以"£01"
开头的行不以int开头),那么int
将存储在变量x
中。之后你可以做w / e。如果你想要它们,你可以将它们传递给Array
等......
BufferedReader
版本:
BufferedReader file = new BufferedReader(new FileReader("Avar.txt"));
String line;
while((line = file.readLine()) != null){
if(line.charAt(0) >= 48 && line.charAt(0) <= 57 ){
String number = line.substring(0, 2);
int x = Integer.valueOf(number);
//do something with x
}
}
file.close();
与Scanner
版本相同的逻辑。
希望这有帮助
答案 1 :(得分:0)
FileReader file = new FileReader("avar.txt");
BufferedReader read = new BufferedReader(file);
for( String tmp = null ; tmp = read.readLine() != null;){
String [] strNumArray = tmp.split(" ");
number.add(strNumArray[0]);
}
上面的某些内容可能会将您的行拆分为由空格符号分隔的部分。
答案 2 :(得分:0)
你可以这样做。
File ifile = new File("avar.txt");
FileReader fr = new FileReader(ifile.getAbsoluteFile());
BufferedReader br = new BufferedReader(fr);
for (String line = br.readLine(); line != null; line = br.readLine()) {
if (!line.startsWith("£")) {
...... Type your code.....//it takes line without "£" sign.
}
}
如果您只想要这样的数字。
Scanner in = new Scanner("Avar.txt");
while(in.hasNextInt)
{
int n = in.nextInt();
}