gpt4 book ai didi

java - 给定一个字符串,删除除连字符之外的所有特殊字符并计算单词数

转载 作者:行者123 更新时间:2023-12-03 18:53:03 24 4
gpt4 key购买 nike

给定字符串“这是高科技就业市场,我们在其中做。职业”
我必须删除除连字符之外的所有特殊字符并计算字符串中的单词数,因此在这种情况下输出应为 10。
我写了下面的程序,但它没有通过测试用例。

public int countWords(String str) {
if(str.isEmpty() || str==null)
return 0;
String replacedString = str.replaceAll(["^a-zA-Z0-9- ]","");
String[] arrWords = replacedString.split("\\s+");
return arrWords.length;
}

最佳答案

您可以使用正则表达式,[\p{Punct}&&[^-]]哪里\p{Punct}代表标点符号。如果要替换字母、数字、连字符和空格以外的所有内容,可以使用正则表达式 [^\p{Alnum}\s-]哪里\p{Alnum}代表 alphanumeric character .
演示:

import java.util.Arrays;

public class Main {
public static void main(String[] args) {
String str = "this is high-tech job market in which? we make. careers";

String[] arr = str.replaceAll("[\\p{Punct}&&[^-]]", "").split("\\s+");

System.out.println(Arrays.toString(arr));

int count = arr.length;

System.out.println(count);
}
}
输出:
[this, is, high-tech, job, market, in, which, we, make, careers]
10

关于java - 给定一个字符串,删除除连字符之外的所有特殊字符并计算单词数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66539502/

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