当前位置:编程学习 > JAVA >>

求查找一段文字中的个数的代码!小弟刚学不久

希望大神能帮我写一个程序 就是在一段文字中 比如输入“你”这个字 他就会显示出现的次数 “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;
}
--------------------编程问答--------------------
引用 2 楼 miaowhehe 的回复:
简单一点就行吧

Java code
?



12345678910111213

public class Test {     public static void main(String[] args) {         String str = "你大舅你二舅都是你舅";         int count = 0;         for (int i = 0;……


++ --------------------编程问答-------------------- 把这段文字转成数组 让后跟你需要的条件一个一个去比较。 --------------------编程问答-------------------- 可不可以这样
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
--------------------编程问答--------------------
引用 8 楼 songbgi 的回复:
或者直接这样了
String str = "你大舅你二舅都是你舅";
int length = str.split("你").length-1;

length就是匹配的个数

这样可能会出问题哦。

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。 --------------------编程问答-------------------- 新手来报道下 --------------------编程问答--------------------
引用 9 楼 lgy502 的回复:
能不能再详细一点 就是说 这个代码写完后 我在cmd中输入“你” 会输出这个字的次数 比如说3

用10楼提供的字符串输入的办法,可以把长字符串和要查找的字符(串)分别读取进来,然后统计结果,输出。这个可以自己试着发挥一下啦。 --------------------编程问答--------------------
引用 11 楼 miaowhehe 的回复:
引用 8 楼 songbgi 的回复:或者直接这样了
String str = "你大舅你二舅都是你舅";
int length = str.split("你").length-1;

length就是匹配的个数
这样可能会出问题哦。
Java code?1234567String str = "你妹";String[] arr = str.split("你"……

既然只是“你”在最后面的时候是特殊情况的话,那就特殊考虑不就行了么?
先判断一下判断最后一个是否是“你”:
如果最后一个不是“你”,则直接:

int length = str.split("你").length-1;

如果最后一个是“你”:

int length = str.split("你").length;
--------------------编程问答--------------------
引用 14 楼 tiantian1412 的回复:
既然只是“你”在最后面的时候是特殊情况的话,那就特殊考虑不就行了么?

OK, 目测you're right... --------------------编程问答--------------------
引用 15 楼 miaowhehe 的回复:
引用 14 楼 tiantian1412 的回复:既然只是“你”在最后面的时候是特殊情况的话,那就特殊考虑不就行了么?
OK, 目测you're right...


多谢大神提示
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,