public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入你要查询出现单词或字母次数句子");
ArrayList<Object> arrayList = new ArrayList<Object>();
String f = s.nextLine();// 接收句子
System.out.println("输入查询的字母");
String string=s.nextLine();
// 接收单词或字母
// 遍历句子
for (Object v : f.toCharArray()) {
arrayList.add( v);
}
int num = 0;
Iterator<Object> a = arrayList.iterator();
while (a.hasNext()) {
if (a.next().equals(string) ){
num++;
System.out.println(num);
}
}
(-------------------------------------------------------------)
我主要是想把自己输入的字符,然后判断是不是有相同的,有几个相同的然后输出,可是总是不行,后面感觉错了,但不知道哪儿错了,求大神帮看下,指点指点!谢谢~
你这是2个字符串比较,你遍历a,然后和你输入的string用equals比较,这个条件跟你的需求完全不相符,例如你的f="我爱你中国",string=“中国”
你的比较是 “我”.equals("中国"),“爱”.equals("中国"),“你”.equals("中国"),“中”.equals("中国"),“国”.equals("中国"),除非你的string只输入一个字,并且在f中也存在,你的num才能++;否则都为0;
应该用f.charAt遍历字符串啊,而且单个字符不需要equals吧
我建议你使用stringBuffer来做,输入两个字符串,然后调用.tocharArray()方法转化为数组,接着挨个比较利用charAt()方法,
其实我感觉你这个是一个匹配问题,可以去了解一下KMP算法 解决起来更高效更好