gpt4 book ai didi

java - java中遇到连字符时分割句子

转载 作者:太空宇宙 更新时间:2023-11-04 07:56:06 25 4
gpt4 key购买 nike

我的程序中有以下代码。当遇到连字符时,它会分割一行,并将每个单词存储在字符串数组“标记”中。但我希望在句子中遇到连字符时也将其存储在字符串数组“标记”中。

String[] tokens = line.split("-");

上面的代码分割了句子,但也完全忽略了结果数组中的连字符。我可以做什么来将连字符也存储在结果数组中?

最佳答案

编辑:-

似乎您想在空格连字符上进行拆分,但仅在数组中保留连字符(正如,我从您的这一行推断 - 将每个单词存储在字符串数组中),您可以使用以下内容:-

String[] tokens = "abc this is-a hyphen def".split("((?<=-)|(?=-))|\\s+");
System.out.println(Arrays.toString(tokens));

输出:-

[abc, this, is, -, a, hyphen, def]
<小时/>

要处理连字符前后的空格,您可以首先使用replaceAll方法修剪这些空格,然后进行拆分:-

"abc this is - a hyphen def".replaceAll("[ ]*-[ ]*", "-")
.split("((?<=-)|(?=-))|\\s+");
<小时/>

上一个答案:-

你可以使用这个:-

String[] tokens = "abc-efg".split("((?<=-)|(?=-))");
System.out.println(Arrays.toString(tokens));

输出:-

[abc, -, efg]

它会在连字符 (-) 前后的一个字符处进行拆分。

关于java - java中遇到连字符时分割句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13601718/

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