gpt4 book ai didi

java - java读取时如何分隔 "="和 "=="

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:55:21 27 4
gpt4 key购买 nike

我希望能够输出“==”和“=”作为标记。

例如输入的文本文件是:

biscuit==cookie apple=fruit+-()

输出:

biscuit
=
=
cookie
apple
=
fruit
+
-
(
)

我想要的输出是:

biscuit
==
cookie
apple
=
fruit
+
-
(
)

这是我的代码:

    Scanner s = null;
try {
s = new Scanner(new BufferedReader(new FileReader("input.txt")));
s.useDelimiter("\\s|(?<=\\p{Punct})|(?=\\p{Punct})");

while (s.hasNext()) {

String next = s.next();
System.out.println(next);
}
} finally {
if (s != null) {
s.close();
}
}

谢谢。

编辑:我希望能够保留当前的正则表达式。

最佳答案

只需根据以下正则表达式拆分输入字符串即可。

String s = "biscuit==cookie apple=fruit"; 
String[] tok = s.split("\\s+|\\b(?==+)|(?<==)(?!=)");
System.out.println(Arrays.toString(tok));

输出:

[biscuit, ==, cookie, apple, =, fruit]

解释:

  • \\s+匹配一个或多个空格字符。
  • |或者
  • \\b(?==+)仅当单词边界后跟 = 时才匹配单词边界符号。
  • |或者
  • (?<==)照顾=符号。
  • (?!=)并且只有在边界后面没有 = 时才匹配边界符号。

更新:

String s = "biscuit==cookie apple=fruit+-()"; 
String[] tok = s.split("\\s+|(?<!=)(?==+)|(?<==)(?!=)|(?=[+()-])");
System.out.println(Arrays.toString(tok));

输出:

[biscuit, ==, cookie, apple, =, fruit, +, -, (, )]

关于java - java读取时如何分隔 "="和 "==",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26452985/

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