java - Java 中 Lisp 表达式的拆分

标签 java arrays parsing split s-expression

好的,所以任务是我采用 Lisp 表达式:

'(A B C D)

并把它变成

'(D C B A)

在Java中。为此,我有以下代码:

String[] items = input.split(" |\\(|\\)|'");
int y = 0;
for (String x : items){ //this part is purely for debugging
    System.out.println(y + " " + x);
    y++;
}

这样它就可以用空格、(、) 和 ' 来分隔它。我应该得到的输出是

0 A
1 B
2 C
3 D

但由于某种原因,我得到的输出是

0
1
2 A
3 B
4 C
5 D

为什么会发生这种情况?另外,有人建议更好的方法吗?

最佳答案

以字符'结尾的子串是空子串,以(结尾的字符串也是空子串

您使用的方法将字符串分解为以分隔符终止的子字符串。

关于java - Java 中 Lisp 表达式的拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28312971/

相关文章:

c# - 反序列化 Json C# 检查是否列表

c++ - 检查数组是否已排序的函数

html - 使用 CSS 或 XPath 选择器解析 HTML?

python - 你如何在 Python 中请求 IMDB API?

java - 动画:缩放按钮以扩展到屏幕顶部

java - Android中如何全局访问SQl​​ite返回的数据?

php - 如何验证 laravel 中插入的图像数组并需要根据验证插入枚举值?

php - 用于解析 HTML 的 DOMDocument(而不是正则表达式)

java - 项目无法执行Findbugs : java. lang.ArrayIndexOutOfBoundsException

java - 如何避免 Spring 缓存中区分大小写的键?