
Java String字符串中已有自定义分隔符,如何统计分隔符间的字符串的出现频率。
举例如下:String="aabb;ccddee;aabb;ccdd;ccee;ccddee;aa;bb;cc;"如何统计以“;”为分隔符的每个字符串的频率,并输出。...
举例如下:
String="aa bb; cc dd ee; aa bb; cc dd; cc ee; cc dd ee; aa; bb; cc;"
如何统计以“;”为分隔符的每个字符串的频率,并输出。 展开
String="aa bb; cc dd ee; aa bb; cc dd; cc ee; cc dd ee; aa; bb; cc;"
如何统计以“;”为分隔符的每个字符串的频率,并输出。 展开
3个回答
展开全部
假如分隔符是逗号,你可以用split 把字符串以逗号分开放到一个数组中,然后去每次用数组的第一个元素和后面的比较,如果匹配,则把那个删掉,并让计数器加1。
可以参考下面的两个代码。
1.
一个以a开头,以f结尾的词出现的次数"出现的次数
import java.util.regex.*;
Pattern p;
Matcher m ;
p = Pattern.compile("a.*?f");
m = p.matcher(x);
int num=0;
while(m.find()){num++;}
2.
public class test2 {
public static void main(String[] args) {
String str = "abstacta";
String str1 = str;
String str2 = "";
char c ;
while (str1.length() > 0) {
c = str1.charAt(0);
str1 = str1.replaceAll(String.valueOf(str1.charAt(0)), "*");
str2 = str1.replaceAll("(\\w)", "");
System.out.println(c + "出现了 " + str2.length() + "次");
str1 = str1.replaceAll("\\*", "");
}
}
}
a出现了 3次
b出现了 1次
s出现了 1次
t出现了 2次
c出现了 1次
可以参考下面的两个代码。
1.
一个以a开头,以f结尾的词出现的次数"出现的次数
import java.util.regex.*;
Pattern p;
Matcher m ;
p = Pattern.compile("a.*?f");
m = p.matcher(x);
int num=0;
while(m.find()){num++;}
2.
public class test2 {
public static void main(String[] args) {
String str = "abstacta";
String str1 = str;
String str2 = "";
char c ;
while (str1.length() > 0) {
c = str1.charAt(0);
str1 = str1.replaceAll(String.valueOf(str1.charAt(0)), "*");
str2 = str1.replaceAll("(\\w)", "");
System.out.println(c + "出现了 " + str2.length() + "次");
str1 = str1.replaceAll("\\*", "");
}
}
}
a出现了 3次
b出现了 1次
s出现了 1次
t出现了 2次
c出现了 1次
2011-01-01
展开全部
利用正则表达式,把字符串放入一个容器中
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String str = "aa bb; cc dd ee; aa bb; cc dd; cc ee; cc dd ee; aa; bb; cc;";
Map<String, Integer> count = new HashMap<String, Integer>();
for (String word : str.split(";")) {
// word = word.trim(); // if necessary
if (count.keySet().contains(word)) {
count.put(word, count.get(word) + 1);
} else {
count.put(word, 1);
}
}
for (String word : count.keySet()) {
System.out.println(word + ":" + count.get(word));
}
Map<String, Integer> count = new HashMap<String, Integer>();
for (String word : str.split(";")) {
// word = word.trim(); // if necessary
if (count.keySet().contains(word)) {
count.put(word, count.get(word) + 1);
} else {
count.put(word, 1);
}
}
for (String word : count.keySet()) {
System.out.println(word + ":" + count.get(word));
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询