从tokenizer移动到substring

时间:2012-12-07 13:43:35

标签: java substring tokenize

我有这个程序使用tokenizer,但我想知道如何使用子字符串。

我想要做的是让用户输入14个数字/字符。 我希望1输入1。

使用令牌器,用户必须像这样输入“1 A 2 B 3 C 4 D 5 E 6 F 7 G” 在每个数字/字符之间留出空格,以便令牌器工作。

我想用子串做的是让我的用户可以像“1A2B3C4D5E6F7G”那样输入

        str = JOptionPane.showInputDialog(null, "Enter the work hours");
    StringTokenizer st = new StringTokenizer(str);

    while (x < 7) {

        if (st.hasMoreTokens()) {
        startday[x] = st.nextToken();
        endday[x] = st.nextToken();

        }

        x++;
    }

2 个答案:

答案 0 :(得分:1)

在这种情况下,您可以简单地遍历内部char数组:

str = JOptionPane.showInputDialog(null, "Enter the work hours");
for (char entry:str.toCharArray()) {
  processValue(entry);
}

或者,允许可选空格:

str = JOptionPane.showInputDialog(null, "Enter the work hours");
for (char entry:str.toCharArray()) {
  if (entry != ' ') {
    processValue(entry);
  }
}

答案 1 :(得分:0)

当您使用令牌时,您可以使用正则表达式从结果字符串中修剪空格。

在我看来,使用substring这样的东西效率不高。但如果你真的需要这样做,read here.