从java的txt文件中提取整数
我在从一个文件中提取一些整数值时遇到了一个大问题,该文件如下所示: [41;48;36;128;1;105] 我试图通过以下代码来实现:从java的txt文件中提取整数,java,Java,我在从一个文件中提取一些整数值时遇到了一个大问题,该文件如下所示: [41;48;36;128;1;105] 我试图通过以下代码来实现: Scanner scanner = new Scanner(new File("ala1.txt")); int [] tall = new int [800]; int i = 0; while(scanner.hasNext()) { if (scanne
Scanner scanner = new Scanner(new File("ala1.txt"));
int [] tall = new int [800];
int i = 0;
while(scanner.hasNext())
{
if (scanner.hasNextInt()){
tall[i++] = scanner.nextInt();
}
但它不起作用。有人能帮我吗 要从行中提取所有整数:
Scanner scanner = new Scanner(new File("ala1.txt"));
String line = scanner.nextLine();
List<Integer> ints = new ArrayList<>();
Matcher m = Pattern.compile("\\d+").matcher(line);
while(m.find()) {
ints.add(Integer.parseInt(m.group()));
}
Scanner Scanner=新的扫描仪(新文件(“ala1.txt”);
字符串行=scanner.nextLine();
List ints=new ArrayList();
匹配器m=模式。编译(\\d+)。匹配器(行);
while(m.find()){
add(Integer.parseInt(m.group());
}
问题是,扫描仪将[
,:
等字符视为正确的文本,因此无法将[41;
或48;
等标记解析为整数。要解决此问题,可以将扫描仪设置为将每个非数字字符视为分隔符
由于Scanner使用regex语法,所以可以使用分隔符,如\D+
,它表示
一个或多个+
非数字字符\D
Scanner scanner = new Scanner(new File("ala1.txt"));
scanner.useDelimiter("\\D+");
while(scanner.hasNextInt()){
System.out.println(scanner.nextInt());
}
如果一行中有多个值,则可以使用split.than方法将其解析为整数
导入java.io.BufferedReader;
导入Java.io.FileReader
public class ReadLine
{
BufferedReader br = new BufferedReader(new FileReader("youtFile.txt"));
try
{
String line;
while((line= br.readLine())!=null)
{
System.out.pringln(line)
for(int i=0i<line.split(",").length)
{
int vl=Integer.parseInt(line.split(",")[i]);
}
}
}
catch(Esception exo)
{
}
finally
{
br.close();
}
}
公共类读线
{
BufferedReader br=新的BufferedReader(新文件读取器(“youtFile.txt”);
尝试
{
弦线;
而((line=br.readLine())!=null)
{
系统输出pringln(行)
对于(int i=0i它不起作用,更具体一点。它怎么不起作用?你在什么地方出错了吗?你得到了意外的输出吗?我想你的问题与[41;
,48;
等等都不是整数这一事实有关。好吧,你必须跳过[
和;
,当前需要一个接一个的整数
public class ReadLine
{
BufferedReader br = new BufferedReader(new FileReader("youtFile.txt"));
try
{
String line;
while((line= br.readLine())!=null)
{
System.out.pringln(line)
for(int i=0i<line.split(",").length)
{
int vl=Integer.parseInt(line.split(",")[i]);
}
}
}
catch(Esception exo)
{
}
finally
{
br.close();
}
}