()最初に区切り文字として使用し、次に に切り替えて,いますが、最初のトークン (括弧内のテキスト) を抽出する前に切り替えています。
おそらくあなたが意図したのはこれです:
transitionInput = data.nextLine();
st = new StringTokenizer(transitionInput,"()", false);
if (st.hasMoreTokens())
{
String chunk = st.nextToken();
st = new StringTokenizer(chunk, ",");
while (st.hasMoreTokens())
{
transition.add(st.nextToken());
}
}
このコードは、式が常に括弧で始まり括弧で終わることを前提としています。この場合は、 を使用して手動で削除することもできますString.substring()。String.split()また、実際の分割を行うために使用することを検討することもできます:
String transitionInput = data.nextLine();
transitionInput = transitionInput.substring(1, transitionInput.length() - 1);
for (String s : transitionInput.split(","))
transition.add(s);
どちらの例も、サンプルコードのようにコンマが区切り記号として使用されていることを前提としていることに注意してください (ただし、質問のテキストには別の記載があります)。