2017-03-12 11 views
-3

次のコードでは、90〜122を使用するとプログラムが機能しませんが、65〜92を使用すると、文字がUpperCaseであっても機能します。文字列の各アルファベットを印刷する必要があります

import java.util.Scanner; 
class rep 
{ 
    public static void main(String args[]){ 
     Scanner sc = new Scanner(System.in); 
     String s=sc.nextLine(); 
     s=s.toUpperCase(); 
     char b; 
     int i,a,c; 
     a=s.length(); 
     for(i=90;i<=122;i++){ 
      c=0; 
      for(int j=0;j<a;j++){ 
       if((char)i==s.charAt(j)){ 
        c+=1; 
       } 
      } 
      if(c>0) 
      System.out.println((char)i+"\t\t\t" +c); 
     } 

    } 
} 
+1

投稿したコードのフォーマットが正しく表示されていますか?それは読んで理解するのが難しく、私たちには当てはまらないので、最初にこれを修正したいと考えています。あなたのコードとあなたの問題を理解することが簡単になればなるほど、私たちが与える答えはますます良くなります。 –

+1

「うまくいかない」というプログラムを具体化してください。 – Izruo

+0

大文字は64-90、小文字は97-122です。 – kaetzacoatl

答えて

0

90-122は小文字(97-122)ですが、65-92は大文字です。コードには次の行があります。s = s.toUpperCase(); String全体を大文字に変換します。それが小文字を検出していない理由です。

BTW。 Javaの規約では、クラス名に最初の文字の大文字を使用しています。

+0

私は97の間違いに悪い..... 97から122を使うと何も印刷されませんが、65から92を使用すると、プログラムがうまく実行されます –

+0

OPと同じ間違いをしたようです。 65-90は大文字*、97-122は小文字*です。 – RealSkeptic

+0

ええ、私の間違いは、私はあることを考えていて、別のものを書くことでした。投稿が編集されました。 – hyperion385

関連する問題