複数のキーワードの前に。が付いている入力ファイルを解析しています+
。これ+
は、の区切り文字でありsplit
、個々のトークンが配列に書き込まれます。結果の配列には、その位置に空白のレコードが含まれます[0]
。
私split
はそれが最初のトークンの前に「何もない」と入力しproject[0]
、次にすべて正しいものとして表示される後続のトークンに移動しているのではないかと思います。
Documentaionによると、このメソッドには次のlimit
パラメータがあります。
nがゼロの場合、パターンは可能な限り何度も適用され、配列は任意の長さにすることができ、末尾の空の文字列は破棄されます。
SOでこの投稿を見つけましたが、提案された解決策では、先頭の区切り文字を編集して(substring(1)
一時フィールドを作成するためにを使用しました)、同じ空白のレコードが生成されました。
以下のコードと出力appers。ヒントをいただければ幸いです。
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