我正在解析一个输入文件,该文件有多个关键字,前面带有+
. 这+
是我在 a 中的分隔符,将split
单个标记写入数组。结果数组在该[0]
位置包含一条空白记录。
我怀疑这split
是在第一个令牌之前取“无”并填充project[0]
,然后继续使用所有显示为正确的后续令牌。
Documentaion说这个方法有一个limit
参数:
如果 n 为零,则该模式将被应用尽可能多的次数,数组可以有任意长度,并且尾随的空字符串将被丢弃。
我在 SO 上找到了这篇文章,但是提出的解决方案是编辑前导分隔符(我使用 asubstring(1)
创建临时字段)为我产生了相同的空白记录。
代码和输出如下。任何提示将不胜感激。
import java.util.regex.*;
import java.io.*;
import java.nio.file.*;
import java.lang.*;
//
public class eadd
{
public static void main(String args[])
{
String projStrTemp = "";
String projString = "";
String[] project = new String[10];
int contextSOF = 0;
int projStringSOF = 0;
int projStringEOF = 0;
//
String inputLine = "foo foofoo foo foo @bar.com +foofoofoo +foo1 +foo2 +foo3";
contextSOF = inputLine.indexOf("@");
int tempCalc = (inputLine.indexOf("+")) ;
if (tempCalc == -1) {
proj StrTemp = "+Uncategorized";
} else {
projStringSOF = inputLine.indexOf("+",contextSOF);
projStrTemp = inputLine.trim().substring(projStringSOF).trim();
}
project = projStrTemp.split("\\+");
//
System.out.println(projStrTemp+"\n"+projString);
for(int j=0;j<project.length;j++) {
System.out.println("Project["+j+"] "+project[j]);
}
}
CONSOLE OUTPUT:
+foofoofoo +foo1 +foo2 +foo3
Project[0]
Project[1] foofoofoo
Project[2] foo1
Project[3] foo2
Project[4] foo3