gpt4 book ai didi

java - 给定一个字符串 s ,将字符串拆分为标记

转载 作者:行者123 更新时间:2023-11-30 08:35:30 26 4
gpt4 key购买 nike

我将标记定义为一个或多个连续的英文字母。然后,打印标记的数量,然后在新行上打印每个标记。字符串 's' 由英文字母、空格和以下任意字符组成:!,?._'@这是我在做什么。

import java.io.*;
import java.util.*;

public class apples {

public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
scan.close();

String[] splitString = (s.split("[\\s!,?._'@]+"));
System.out.println(splitString.length);
for (String string : splitString) {
System.out.println(string);
}
}
}

当我输入一个以上述任何字符开头的字符串时,我的代码会计算字符数,并在打印时给出一个空格,如下所示。

    @dsd sd.sf 
4

dsd
sd
sf

我期待的是这个。

    @dsd sd.sf 
3
dsd
sd
sf

请帮忙!!

最佳答案

第一个分隔符之前没有文本,因此您得到一个空字符串。我建议你忽略第一个空字符串。您还可以在开头添加一个分隔符,这样您就知道您始终可以忽略一个分隔符。例如

String[] split = ("@"+s).split("\\W+"); 
int words = split.length - 1;

或者你可以截断前导非字母

String[] split = s.replaceAll("^\\W+", "").split("\\W+");

关于java - 给定一个字符串 s ,将字符串拆分为标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38168148/

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