【问题标题】:Working with stringtokenizers and numbers使用字符串标记器和数字
【发布时间】:2014-01-09 12:25:26
【问题描述】:

使用第二个 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 ;

【问题讨论】:

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

标签: java string token


【解决方案1】:

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

你可能想要这样的东西

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

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

注意:您可能还需要.trim() 令牌,具体取决于输入的内容。如果有空格,标记器不会排除它们,因此您需要先在字符串上调用 .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]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多