求查找一段文字中的个数的代码!小弟刚学不久
希望大神能帮我写一个程序 就是在一段文字中 比如输入“你”这个字 他就会显示出现的次数 “3”次,就是这个意思,求助。 代码 求助 --------------------编程问答--------------------static void outStrOvMun(String ss){--------------------编程问答-------------------- 简单一点就行吧
Map<String, Integer> map = new HashMap<String, Integer>() ;
for (int i = 0; i < ss.length(); i++) {
String s = ss.substring(i, i+1) ;
if(!map.containsKey(s))
map.put(s, 1) ;
else
map.put(s, map.get(s)+ 1) ;
}
for (String key : map.keySet()) {
System.out.println(key+":"+map.get(key));
}
}
--------------------编程问答--------------------
public class Test {
public static void main(String[] args) {
String str = "你大舅你二舅都是你舅";
int count = 0;
for (int i = 0; i < str.length(); i++)
{
if (str.charAt(i) == '你')
count++;
}
System.out.println(count);
}
}
--------------------编程问答--------------------
public static int getCountStr(String countStr,String traget){
Pattern pattern=Pattern.compile(countStr,Pattern.MULTILINE|Pattern.LITERAL);
Matcher matcher=pattern.matcher(traget);
int count=0;
while(matcher.find()&&++count>=0);
return count;
}
++ --------------------编程问答-------------------- 把这段文字转成数组 让后跟你需要的条件一个一个去比较。 --------------------编程问答-------------------- 可不可以这样
String str = "你大舅你二舅都是你舅";
int length = str.split("你").length;
当length是 -1的时候表示没有 不等于-1的时候 length-1就是匹配的个数 --------------------编程问答-------------------- 上面弄错了
String str = "你大舅你二舅都是你舅";
int length = str.split("你").length;
当length是 1的时候表示没有 不等于1的时候 length-1就是匹配的个数 --------------------编程问答-------------------- 或者直接这样了
String str = "你大舅你二舅都是你舅";
int length = str.split("你").length-1;
length就是匹配的个数 --------------------编程问答-------------------- 能不能再详细一点 就是说 这个代码写完后 我在cmd中输入“你” 会输出这个字的次数 比如说3 --------------------编程问答-------------------- 看看这个行不行
import java.util.Scanner;
public class PrintDemo {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(System.in);
while(true) {
String temp;
if((temp = scanner.nextLine()).equals("bye")) {
System.out.println("ok! byebye");
break;
}
count(temp, "你");
}
}
/**
* 指定字符在输入字符串中出现的次数
* @param temp 输入字符
* @param appear 指定字符
*/
public static void count(String temp, String appear) {
int length = temp.length() - temp.replaceAll(appear, "").length();
System.out.println("字符[" + appear + "]出现的次数:" + length);
}
}
测试输出:
我号喜欢你--------------------编程问答--------------------
字符[你]出现的次数:1
你子啊地方是你你你
字符[你]出现的次数:4
这样可能会出问题哦。
String str = "你妹";
String[] arr = str.split("你");
System.out.println(arr.length);// 输出2
str = "你妹你";
arr = str.split("你");
System.out.println(arr.length);// 输出依然是2
// arr : { "", "妹"}
Java API文档中对split()的解释中有这么一句话:
Trailing empty strings are therefore not included in the resulting array.
所以当"你"出现在最后时并不能使得到的数组长度加1。 --------------------编程问答-------------------- 新手来报道下 --------------------编程问答--------------------
用10楼提供的字符串输入的办法,可以把长字符串和要查找的字符(串)分别读取进来,然后统计结果,输出。这个可以自己试着发挥一下啦。 --------------------编程问答--------------------
既然只是“你”在最后面的时候是特殊情况的话,那就特殊考虑不就行了么?
先判断一下判断最后一个是否是“你”:
如果最后一个不是“你”,则直接:
int length = str.split("你").length-1;
如果最后一个是“你”:
--------------------编程问答--------------------
int length = str.split("你").length;
OK, 目测you're right... --------------------编程问答--------------------
多谢大神提示
补充:Java , Java SE