统计字符串中有几个汉字簇

我这里有一个字符串如“abcd中国abcdei上海dce是的啊frw”我想统计出这个字符串中有几组汉字簇 如中国、上海这样被字母间隔开来的算一组。在表达一下啊就是这一组字符串中以被字母间隔开不紧挨着的汉字就酸一组 统计这个字符串中一共有几组这样的汉字 谢谢了
qicen85 谢谢啊 还有个问题就是字符串中并不都是字母和汉字 还有其他的比如数字标点符号什么的 能不能把你的正折表达试改成只留中文的 把其他的都过滤掉 表达试我不懂帮忙改下啊 到时可以了 在加分 谢谢了
最新回答
姐很高也很傲

2024-11-28 13:35:33

这样应该可以吧。
可以再根据需要该进下。

下面的可以了。
觉得该学正则表达式,很好用,我也是前一段时间学的。
这不就用上了(*^__^*)

public class StringTest {

public static void main(String[] args) {

String test = "ab564gh31cd中国abcd345.45ei上海d*/-+ce是的啊frw";
String[] result = test.split("[^\u4e00-\u9fa5]+");
int num = 0;
for (int i = 0; i < result.length; i++) {
if (result[i].length()!=0) {
num++;
}
}
System.out.println(num);
}
}
避而不谈

2024-11-28 08:15:04

public static void main(String args[]) {
String req = "[\u4e00-\u9faf]+";

String str = "中国134234中国asflsdjflsdjflsjflsdjfljdsl一中f人";

Pattern p = Pattern.compile(req);
Matcher m = p.matcher(str);
int count = 0;
while (m.find()) {
count++;
}
System.out.println(count);
}
久疚

2024-11-28 09:08:54

import java.util.ArrayList;
import java.util.Iterator;

public class Hanzi {
public static void main(String[] args) {
Hanzi test = new Hanzi();
String input = "abcd中国abcdei上海dce是的啊frw";
ArrayList<String> list = new ArrayList<String>();
char[] chars = input.toCharArray();
for (int i = 0; i < chars.length; i++) {
if (test.isCharacter(chars[i])) {
StringBuffer sb = new StringBuffer();
sb.append(chars[i]);
while (test.isCharacter(chars[i + 1])) {
sb.append(chars[i + 1]);
i++;
}
list.add(sb.toString());
}
}

for (Iterator<String> it = list.iterator(); it.hasNext();) {
String tmp = it.next();
System.out.println(tmp);
}
}

private boolean isCharacter(char c) {
if (c >= '\u4e00' && c <= '\u9fbf') {
return true;
} else {
return false;
}
}
}