当前位置: 首页 > 知识库问答 >
问题:

将句子拆分成字符串数组,并保留特殊字符或空格

颛孙玉石
2023-03-14

我想把一个有空格或任何特殊字符的句子分成一个单词数组,空格或特殊字符也是数组的一个元素。

句子像:

aman,amit and sumit went to top-up 

应拆分为字符串数组:

{"aman",",","amit"," ","and"," ","sumit"," ","went"," ","to"," ","top","-","up")

请建议使用任何正则表达式或逻辑来使用java进行拆分。

我的问题漏了一件事。我还需要拆分数字字符。。但是使用split(“\b”)并不能拆分具有以下内容的字符串:

abc12def

{ "abc", "12","def") or {"abc","1","2","def")

共有2个答案

艾宏远
2023-03-14

我希望下面的代码片段能帮助您解决这个问题。

public static void main(final String[] args) {
        String message = "aman,amit and sumit went to top-up";
        String[] messages = message.split("\\b");
        for(String string : messages) {
            System.out.println(string);
        }
    }
钱欣然
2023-03-14

似乎您只需要匹配单词字符(\w)或非单词字符(\w)。将这些与一个交替操作符结合起来,或许可以添加一个模式。UNICODE_CHARACTER_CLASS(或其内联/嵌入式版本(?U))使模式支持UNICODE:

String value = "aman,amit and sumit went to top-up";
String pattern = "(?U)\\w+|\\W+";
List<String> lst = new ArrayList<>();
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(value);
while (m.find())
    lst.add(m.group(0));
System.out.println(lst);

查看Java演示

 类似资料:
  • 问题内容: 我已经编写了这段代码,用于拆分字符串并将其存储在字符串数组中:- 但是,我添加了[az],因为我想处理一些缩写问题。但是随后我的结果显示为: 此外,当埃弗里特(Everett)试图指导他们进行基础数学训练时,他们被证明是毫无反应的 我看到丢失了split函数中指定的模式。对我来说,可以省略句号,但是丢失单词的最后一个字母会打乱其含义。 有人可以帮助我吗?此外,有人可以帮助我解决缩写吗?

  • 我想根据特殊字符(如“=”)将一个句子拆分为单词。我尝试了以下代码,但无法得到确切答案,请参阅我的代码: 代码的输出是: 0 C: D: E:=99.993340#0.000000#0.035810#0.000000#0.000179#0.000358#0.000000#0.000000#1.999614#3071.407671_Total=99.993340#0.000000#0.035810#

  • 问题内容: 我正在尝试找到一种将String拆分为String数组的方法,并且每当遇到白色香料时就需要对其进行拆分,例如 “嗨,我是保罗” 进入” “嗨”“我”“保罗” 如何使用RegularExpression在split()方法中表示空格? 问题答案: 您需要一个正则表达式,例如,这意味着: 每当遇到至少一个空格时就进行拆分 。完整的Java代码是:

  • 我希望能够根据子字符串分隔符拆分字符串,在分隔符子字符串的第一个字符之前开始拆分。现在: 将给我,但我希望得到

  • 问题内容: 我需要将一个String拆分为单个字符String的数组。 例如,拆分“ cat”将得到数组“ c”,“ a”,“ t” 问题答案: 这将产生

  • 我有一个字符串 我想将加法与数字分开,以便我可以将其保留在其他字段中。如何在不丢失数字或加法的情况下拆分此值?最后,我想有 2 个具有以下类型的字段: 关于这个有很多问题,但是我找不到两个值都必须保存的问题。这就是为什么我创建了一个新问题。