2017-02-03 9 views
0

私はウェブサイトにあるテキストを持っています。私は、そのページをスキャンして、改行や "Enter press"と "tabs"に起因するスペースを含むいくつかの文字の数を数えます。文字列の改行数

私は、行数などを数えるための答えを見つけました。

どのように私は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); 

} 
} 
+3

これまでに書いたコードを共有します – nullpointer

+0

okコードを追加しました。 – George

答えて

0

私たちはあなたのデータはdataと呼ばれる文字列に格納されていることを前提とした場合:

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

lengthdataに改行文字の数を与えるだろう。

+1

パターン '\ r?\ n" 'は同じことをしなければなりません –

+0

opの元の投稿はタブと行数をカウントする必要があるので、これは間違っています(' \ n'と 'つまり、あなたは@ cricket_007、 '' \ r?\ t?\ n "'が正しい答えです。 – PMARINA

+0

は@PMARINAの修正に同意しました。 –

0

あなたが探しているすべての文字を検索しfind()を使用して発生回数をカウントするために、正規表現を作成するために、標準ライブラリのPatternMatcherクラスを使用することができますが、これはより複雑であるかどうかを知りませんあなたが必要としている文字列を必要なすべての必要な空白文字に分割できます...(Krishna Chikkala's answerと同様)

関連する問題