String中的换行符数

时间:2017-02-03 22:23:09

标签: java string java.util.scanner

我有一个网站上的文字。我正在扫描该页面并计算几个字符的数量,包括换行或“输入按下”和“标签”引起的空格。

我找到了计算行数等的答案。

我怎样才能在java中这样做?计算空格很容易,有一种方法,但据我所知,不是换行符或制表符。

网站是http://homepage.lnu.se/staff/jlnmsi/java1/HistoryOfProgramming.txt,我正在计算大写和小写字母,以及任何类型的空格。

到目前为止,我的输出对于大写和小写是正确的,但不是空格。我错过了15,这正是换行符的数量。

public class CountChar 
{
public static void main(String[] args) throws IOException
{
    int upperCase = 0;
    int lowerCase = 0;
    int whitespace = 0;
    int others = 0;

    String url = "http://homepage.lnu.se/staff/jlnmsi/java1/HistoryOfProgramming.txt";
    URL page = new URL(url);
    Scanner in = new Scanner(page.openStream());
    while (in.hasNextLine())
    {
        whitespace++; // THIS IS THE SOLUTION FOR THOSE WHO COME LATER <<<<<
        String line = in.nextLine();
        for (int i = 0; i < line.length(); i++)
        {
            if (Character.isUpperCase(line.charAt(i)))
            {
                upperCase++;
            }
            else if (Character.isLowerCase(line.charAt(i)))
            {
                lowerCase++;
            }
            else if (Character.isWhitespace(line.charAt(i)))
            {
                whitespace++;
            }               
            else
            {
                others++;
            }
        }
    }
    System.out.print(lowerCase + " " + upperCase + " " + whitespace + " " + others);

}
}

2 个答案:

答案 0 :(得分:0)

如果我们假设您的数据存储在名为data的字符串中:

String[] arrayOfLines= data.split("\r?\t?\n");
int length=arrayOfLines.length-1;

length会在data中提供换行符的数量。

答案 1 :(得分:0)

您可以使用标准库中的PatternMatcher类来创建正则表达式,以搜索您要查找的所有字符,并使用find()计算出现次数但不知道这是否比你需要的更复杂,你可以将字符串拆分为你需要的所有空白字符......(类似于Krishna Chikkala's answer