Java 扫描文件以查找模式

Java 扫描文件以查找模式,java,regex,file,java.util.scanner,Java,Regex,File,Java.util.scanner,我目前正在开发一个简单的解析程序,它从文件中读取某些模式,格式化它们,然后将它们写入输出文件 输入文件如下所示 {0,0,0,0,0,0,0,0,0,0}{1,1,1,1,1,1,}{3,3,3,3,3,3} 数字的数量因块而异,数字本身也不尽相同 它们基本上是随机的。 所以我想扫描输入文件中的那些块。 到目前为止,我得到的是: Pattern block = Pattern.compile("(\\{.*\\})"); while(scanner.hasNext(block)){

我目前正在开发一个简单的解析程序,它从文件中读取某些模式,格式化它们,然后将它们写入输出文件

输入文件如下所示

{0,0,0,0,0,0,0,0,0,0}{1,1,1,1,1,1,}{3,3,3,3,3,3}

数字的数量因块而异,数字本身也不尽相同 它们基本上是随机的。 所以我想扫描输入文件中的那些块。 到目前为止,我得到的是:

Pattern block = Pattern.compile("(\\{.*\\})");
    while(scanner.hasNext(block)){
        System.out.println(scanner.next(block));
    }
但到目前为止,程序甚至没有输入
while
语句。我不知道 如果我的模式错误或我使用扫描仪不正确

我如何处理块之间的空白

谢谢你的帮助

定义分隔符-标记之间的模式:


在初始化
模式之前
如果文件中的所有块内部都有一个空格,我认为可能的解决方案是读取文件并将所有空格替换为整个
字符串中的一个“”

我的意思是,例如,如果您在文件中以
字符串
的形式存储块(它只在一行中):

然后,您可以通过以下方式阅读:

String test = scanner.nextLine();
现在,您已经有了
字符串
和所有的块,您可以将
替换为
。大概是这样的:

test = test.replaceAll(" ","");
现在,您可以将其打印到另一个文件中,并读取第二个文件,以获得没有空间的所有块


我希望这对你有帮助

每个块都在文件的不同行中吗?不,不幸的是不是。就像上面所说的一样?如何储存?所有这些都连在一起了?我想我发现了错误。这些块实际上在每个逗号后面都有空格。有没有办法忽略空白?我有一个疑问。你打开了什么类型的扫描仪?
{0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 } {1 ,1 ,1 ,1 ,1 ,1 ,1 ,} {3 ,3 ,3 ,3 ,3 ,3 ,3 ,3 ,3 ,3 }
String test = scanner.nextLine();
test = test.replaceAll(" ","");