gpt4 book ai didi

java - 在Java中从扫描仪读取可变宽度标记?

转载 作者:行者123 更新时间:2023-12-01 04:12:46 25 4
gpt4 key购买 nike

给定一个表达式,例如:

4*x+16-455

我需要能够单独检索 token 。因此,我需要:

4
*
x
+
16
-
455

我不能只使用“nextInt()”,因为它都是一个字符串 - 我该如何解决这个问题?我考虑过按运算符进行拆分,然后在两者之间交替,这应该可行,但似乎应该有一种更简单的方法来做到这一点。

最佳答案

读取整个字符串并将其拆分为标记的最简单方法。您可以通过正则表达式选择 token 。您的示例可以通过以下正则表达式解析为标记:

String s = "4*x+16-455";
Pattern p = Pattern.compile("([0-9]+|[a-z]+|[*//+//-])");
Matcher m = p.matcher(s);
while(m.find()) {
System.out.println(m.group());
}

输出:

4
*
x
+
16
-
455

如果您需要具有许多不同标记的更聪明的拆分器,请考虑修改正则表达式或更好地使用解释器模式以使您的解决方案更具可读性。

关于java - 在Java中从扫描仪读取可变宽度标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19755890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com