【发布时间】:2014-03-30 15:58:14
【问题描述】:
我的程序需要在数组列表中的每个第三个元素之后添加换行符。这是我的输入文件,其中包含以下数据:
934534519137441534534534366, 0796544345345345348965, 796345345345544894534565, 734534534596544534538965, 4058991374534534999999, 34534539624, 91953413789453450452, 9137534534482080, 9153453459137482080, 405899137999999, 9653453564564524, 91922734534779797, 0834534534980001528, 82342398534 6356343430001528, 405899137999999, 9191334534643534547423752, 3065345782642564522021, 826422205645345345645621, 40584564563499137999999, 953453345344624, 3063454564345347, 919242353463428434451, 09934634634604641264, 990434634634641264, 40346346345899137999999, 963445636534653452, 919234634643325857953, 91913453453437987385, 59049803463463453455421, 405899137534534999999, 9192273453453453453758434,
它会延伸到多行。
代码:
public class MyFile {
private static final Pattern ISDN =Pattern.compile("\\s*ISDN=(.*)");
public List<String> getISDNsFromFile(final String fileName) throws IOException {
final Path path = Paths.get(fileName);
final List<String> ret = new ArrayList<>();
Matcher m;
String line;
int index = 0;
try (
final BufferedReader reader = Files.newBufferedReader(path, StandardCharsets.UTF_8);) {
while ((line = reader.readLine()) != null) {
m = ISDN.matcher(line);
if (m.matches()) {
ret.add(m.group(1));
index++;
if(index%3==0){
if(ret.size() == index){
ret.add(m.group(1).concat("\n"));
}
}
}
}
return ret;
}
}
}
【问题讨论】:
-
你有什么问题?
-
我会将它们全部添加到列表中,并且仅在打印时添加格式。在数据中添加格式通常会导致混淆。
-
在这种情况下不要使用“\n”,而是使用
System.getProperty("line.separator"); -
你能正确告诉我怎么做吗??
-
那
try块是什么?你在哪里发现你的异常?