标题:求求哪位大神帮帮忙,一直求不出the的个数%>_<%
取消只看楼主
苏苏酱
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-4-24
结帖率:50%
已结贴  问题点数:10 回复次数:5 
求求哪位大神帮帮忙,一直求不出the的个数%>_<%

程序代码:
import *;
import java.util.*;
public class End {
    private int line, charCount, countThe;
    private StringBuffer sb;
    private Vector<String> v;
    private Vector<StringBuffer> vsb;

    public End() {
        sb = new StringBuffer();
        v = new Vector<String>();
        vsb = new Vector<StringBuffer>();
    }

    public void input() throws IOException {
        String s = "";
        System.out.println("请输入若干行文本,以end作为结束行:");
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        s = br.readLine();
        while (!s.equals("end")) {
            v.add(s);
            StringBuffer ssb = new StringBuffer(s);
            vsb.add(ssb);
            s += "\n";
            line++;
            sb.append(s);
            s = br.readLine();
        }
    }

    public void count() {
        for (int i = 0; i < v.size(); i++) {        
            String[]s = v.get(i).split("");
            String ss = "";
            for (int j = 0; j < s.length; j++) {
                if (s[j].contains("the"))
                    countThe++;                
                ss+=s[j];                
            }
            charCount += ss.length();            
        }
    }//问题

    public void translate() {
        for (int i = 0; i < vsb.size(); i++) {
            for (int j = 0; j < vsb.get(i).length(); j++)
                if (j == 0 || vsb.get(i).charAt(j - 1) == ' ')
                    vsb.get(i).setCharAt(j, Character.toUpperCase(vsb.get(i).charAt(j)));
        }
    }

    public void output() {
        System.out.println("该文本由" + line + "行组成,字符总数为:" + charCount + ",有 " +countThe+ "个“the”");
        System.out.println("将整个文本中所有单词首字母为小写的改为大写输出:");
        System.out.println(vsb.toString());
    }

    public static void main(String[] args) throws IOException {
        End e = new End();
        e.input();
        e.count();
        e.translate();
        e.output();
    }
}

搜索更多相关主题的帖子: Vector 
2016-05-11 20:42
苏苏酱
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-4-24
得分:0 
回复 3楼 mary_xiaoman
第一种方法不可以用,能不能将你运行的代码发给我O(∩_∩)O!
2016-05-12 20:31
苏苏酱
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-4-24
得分:0 
回复 2楼 grmmylbs
程序存在bug,不同行可以,同一行就不可以了
2016-05-13 09:06
苏苏酱
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-4-24
得分:0 
回复 6楼 grmmylbs
这真是一个神奇的问题,那如果我要实现单个“the”单词的话,只需要把 if (s[j].contains("the"))换成 if (s[j].equals("the"))就可以了么?
2016-05-13 17:54
苏苏酱
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-4-24
得分:0 
回复 7楼 mary_xiaoman
恩,好的这样可以了,可以实现包含“the”单词,但是对单个“the”单词,我把contains("the"))换成equals("the")为什么不可以呢?


[此贴子已经被作者于2016-5-13 18:08编辑过]

2016-05-13 18:05
苏苏酱
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-4-24
得分:0 
回复 11楼 林月儿
equals()是判断左右两边是否相等,但是为什么会出现“athe”这种也返回true的情况呢?
2016-05-14 16:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-464680-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.314686 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved