f3d*_*d0r 0 java string for-loop if-statement
我正在写一个计数程序的信.有没有办法使用一个案例来增加字符串中字母的数量,而不是使用26个案例.是否可以简化此计划?
import javax.swing.JOptionPane;
public class CountLetters
{
public static void main(String[] args)
{
{
String str = JOptionPane.showInputDialog("Enter any text.");
int count = 0;
String s = str.toLowerCase();
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i)==('a')||s.charAt(i)=='b'||s.charAt(i)=='c'||s.charAt(i)=='d'||s.charAt(i)=='e'||s.charAt(i)=='f'||
s.charAt(i)=='g'||s.charAt(i)=='h'||s.charAt(i)=='i'||s.charAt(i)=='j'||s.charAt(i)=='k'||s.charAt(i)=='l'||
s.charAt(i)=='m'||s.charAt(i)=='n'||s.charAt(i)=='o'||s.charAt(i)=='p'||s.charAt(i)=='q'||s.charAt(i)=='r'||
s.charAt(i)=='s'||s.charAt(i)=='t'||s.charAt(i)=='u'||s.charAt(i)=='v'||s.charAt(i)=='w'||s.charAt(i)=='x'||
s.charAt(i)=='y'||s.charAt(i)=='z') {
count++;
}
}
System.out.println("There are " + count + " letters in the string you entered.");
}
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法简化这个程序,所以只有一个if条件,而不是26?
只需使用大于和小于运算符:
if (s.charAt(i) >= 'a' && s.charAt(i) <= 'z')
Run Code Online (Sandbox Code Playgroud)