さて、以前の問題だったスペースを解析できるようになりました。これで私のパーサーはほぼ準備が整いましたが、私には理解できない欠陥があります。
セグメントの後のデータ (コードを参照) とパイプ間のデータを取得できます。私が到達できないのは、レベルアップして、パイプの間に含まれ、^ で区切られたデータを取得することです。
例えば。
Input String is A|1|2|3^4|
Expected Output
element1 A
element2 1
element3 2
element4.1 3
element4.2 4
しかし、私の現在の出力は
element1 A
element2 1
element3 2
element4 3^4
@ の後にさまざまな ID を持つ例外 1 [Ljava.lang.String;@1786e64 を受け取っています。
以下に示すコメント付きのコードは、問題を引き起こしています。
コード:
Scanner scanner = new Scanner(System.in);
str=scanner.nextLine();
System.out.println(str);
segments="(A)|(B)|(C)|(D)";
pipe="[\\s+\\|+\\+]";
carat="[\\^+]";
for(i=0;i<token_type1.length;i++)
{
token_type2=token_type1[i].toString().split(pipe);
for(j=0;j<token_type2.length;j++)
{
/*
token_type3=token_type2.toString().split(carat);
for(k=0;k<token_type3.length;k++)
System.out.println("\t"+(k+1)+" "+token_type3[k]);
*/
System.out.println((j+1)+"\t"+token_type2[j]);
}
System.out.println();
}
お知らせ下さい。