拆分字符串并删除java中的每隔一个空格

时间:2011-11-17 05:54:50

标签: java split format spaces

我在原始文件中记录了数据。它看起来像这样:

"2 A U W 2 0 1 1 1 1 1 6 0 0 1 0 0 0        U S E R N 1      F T Y 0 0 0 0 0 0 D 9         2 A I L 2 0 1 1 1 1 1 6" 

等等。

我需要在相同长度的消息上对此字符串进行子串(从“2 A U W”到“4 A I L”400字节)。这是由String as = s.substring(0,400).toLowerCase()做出的。但这对我来说还不够。我想发这样的信息:

2auw 
20011111600100 
usern1 
fty000000d9

任何人都可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

这将完成您的工作。如果你有很多像上面那样的数据,我们将不得不考虑其他一些逻辑。我认为它不适合数百万条记录。

String asd = "2 A U W 2 0 1 1 1 1 1 6 0 0 1 0 0 0        U S E R N 1      F T Y 0 0 0 0 0 0 D 9         2 A I L 2 0 1 1 1 1 1 6";
asd = asd.replaceAll("      ", "\n");
asd= asd.replaceAll(" ", "");
System.out.println(asd);

请注意"U S E R N 1""F T Y 0 0 0 0 0 0 D 9"之间的空格是最小同时空格数。所以,我使用了这个空格来插入换行符 如果字符之间的空间大于此<6 space>字符串的两倍,则逻辑将导致错误的输出。即:将持续<12 spaces> 要解决此问题,您可以在打印之前插入此代码。但只有在发生此类数据时才使用它。

asd= asd.replaceAll("\n\n", "\n");

答案 1 :(得分:1)

您可以添加反斜杠n“\ n”以在字符串中添加换行符。

我不确定这是不是最好的方法,但这是一种方法: 如果你知道你需要换行符,你可以子串并添加反斜杠n。像这样:

String s = as.substring(0,4) + "\n" + as.substring(4,18) + "\n" + //....and so on

希望有所帮助

答案 2 :(得分:-1)

你试过了吗?

String[] split = s.split("\\s+");

您可能需要调整reg-exp。