使用stringtokenizers和数字

时间:2014-01-09 12:25:27

标签: java string token

  

使用第二个StringTokenizer构造函数,编写一个方法   返回输入字符串中的第一个或第二个标记   令牌参数。您需要设置自定义分隔符   用字符串括起来但不用逗号分隔。

好吧,所以这就是我到目前为止.....我需要帮助制作代码,以便它根据用户输入返回第一个或第二个令牌....现在我只知道如何返回第一个或第二个令牌。香港专业教育学院尝试制作一段时间或if语句,但它总是说我不能将int转换为字符串,我甚至尝试过类型转换但它不会让我这样做.... 我该怎么办才能让它返回任何一个令牌用户输入?

String parseEqn_p2(String input, int token) {
      StringTokenizer st = new StringTokenizer(input, "+-/*%");

        String first = st.nextToken();
      String second = st.nextToken();

      return first ;

1 个答案:

答案 0 :(得分:0)

  

“”它总是说我无法将int转换为字符串,“ - 使用String.valueOf(int)

你可能想要这样的东西

if (first.eqauls(String.valueOf(token)) {
    return first;
} else if (...)  {

}
return null; // if not found
...

注意:您可能还需要.trim()令牌,具体取决于输入内容。如果有空格,则tokenizer不会排除它们,因此在尝试比较之前,首先需要在String上调用。trim()。像

String first = st.nextToken().trim();

此外,您可能希望使用字符类,因为您正在使用所有字符的单个分隔符查找,这不是您想要的。试试这个

StringTokenizer st = new StringTokenizer(input, "[+-/*%]");

在任何情况下,您希望该方法返回int,那么您需要解析该令牌

int first = Integer.parseInt(st.nextToken());

另外,请注意:无论是谁给了你这个作业,请他们阅读documentation for StringTokenizer,你会在哪里找到这段摘录

  

StringTokenizer是一个遗留类,出于兼容性原因而保留,尽管在新代码中不鼓励使用它。建议任何寻求此功能的人都使用String的split方法或java.util.regex包。

以下示例说明了如何使用String.split方法将字符串分解为其基本标记:

     String[] result = "this is a test".split("\\s");
     for (int x=0; x<result.length; x++)
         System.out.println(result[x]);