static void nodes(String node) {
int node_location;
int i;
int update_i=1;
node_location=((node.indexOf("(("))-2);
ArrayList<String> node_array = new ArrayList<String>();
for( i=1;i<node_location;i++) {
if(node.charAt(i)!=',') {
if(node.charAt(i+1)==',' || node.charAt(i+1)==')')
node_array.add(Character.toString(node.charAt(i)));
else {
for(int a=i+2;a<=node.indexOf("),");a++) {
update_i++;
if(node.charAt(a)==',') {
node_array.add(node.substring(i, a));
break;
}
}
i=update_i;
}
}
}
}
このメソッドは、の形式の文字列を受け取り(1,2,3,4,5)
、数値を(文字列として)配列リストに格納することになっています。問題は(1,2,333,4,5)
、たとえば、ifステートメントをelseに移動して、コンマに到達する前に桁がいくつあるかを確認する必要がある場合です。次に、その部分文字列を取得して、配列リストに格納します。問題は、何らかの理由で、elseステートメントに到達したときにIの場所が更新されないことです(数字が複数の場所であったため、forループよりも多くインクリメントする必要があります。ただし、実行すると、私のプログラムは以下を出力します:
1
2
333
333
33
3
4
5