gpt4 book ai didi

java - StringTokenizer 努力打印出星星之间的内容

转载 作者:行者123 更新时间:2023-11-30 01:46:42 24 4
gpt4 key购买 nike

我正在尝试使用 StringTokenizer 从字符串中打印出来,例如“star 1 wars are the best”,如下所示:

*star 1*
wars
are
the
best

打印结果如下:

*star
1*
wars
are
the
best

代码:

String delimiters = " "; 
StringTokenizer stringTokenizer = new StringTokenizer(line, delimiters);
while (stringTokenizer.hasMoreElements()) {
System.out.println(stringTokenizer.nextElement();

非常感谢您的帮助

最佳答案

根据documentation ,不鼓励使用StringTokenizer。您应该使用 split 或正则表达式。

StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.

这个问题可以通过正则表达式来解决,它比字符串标记器强大得多。

您可以使用此正则表达式:

\*[^*]+\*|\S+

与以下任意一项匹配:

  • 包含在 * 中的字符,包括 *。 (\*[^*]+\*)。
  • 非空白字符 (\S+)

这正是您要打印的两件事。您将正则表达式与该行进行匹配,然后打印出每个匹配项。

Matcher m = Pattern.compile("\\*[^*]+\\*|\\S+").matcher(line);
while (m.find()) {
System.out.println(m.group());
}

关于java - StringTokenizer 努力打印出星星之间的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57683601/

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