2016-02-26 5 views
-2

При создании программ о подсчете количества алфавитов каждый (например, input-abc/output-a: 1, b: 1, c: 1, d: 0, ..., z: 0)У меня проблема. Я не знаю, почему предложения if не работают ... Вот мой код.Java Подсчет количества алфавитов

import java.util.Scanner; 


public class Prac05 { 

    public static void main(String[] args) { 
     Scanner sc = new Scanner(System.in); 
     String a = sc.nextLine(); 
     String[] b = a.split(""); 


     if (a.length() <= 100) { 
      for (int i = 0; i < b.length; i++) { 
       for (int j = 'a'; j <= 'z'; j++) { 
        if(b[i].equals((char) j)) { 
         System.out.println("1"); 
        } 
       } 
      } 
     } 
    } 

} 

Я должен напечатать «1», однако, так как если-Клаусы не так, ничего не делает выход ...

+4

'b [i]' '' String' и '(char) j' помещается в поле' Character'. Строка и символ никогда не могут быть равными. – Tunaki

+0

Вы должны иметь возможность сделать это с помощью одного цикла и одного оператора if, используя только 'a' без изменений. –

ответ

2

Вы сравниваете String объект в Character объект, который не равен друг друга из-за их разных типов.

Простое решение, которое также приведет к более эффективной и более элегантный код, чтобы использовать String.charAt(), а не разделение исходной строки на множество мелких String объектов, и перебирать от 0 до a.length для каждого символа в строке ,

Смежные вопросы