好吧,所以这就是我到目前为止.....我需要帮助制作代码,以便它根据用户输入返回第一个或第二个令牌....现在我只知道如何返回第一个或第二个令牌。香港专业教育学院尝试制作一段时间或if语句,但它总是说我不能将int转换为字符串,我甚至尝试过类型转换但它不会让我这样做.... 我该怎么办才能让它返回任何一个令牌用户输入?使用第二个StringTokenizer构造函数,编写一个方法 返回输入字符串中的第一个或第二个标记 令牌参数。您需要设置自定义分隔符 用字符串括起来但不用逗号分隔。
String parseEqn_p2(String input, int token) {
StringTokenizer st = new StringTokenizer(input, "+-/*%");
String first = st.nextToken();
String second = st.nextToken();
return first ;
答案 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]);