首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将s.charAt从'a‘\( s.charAt )

将s.charAt从'a‘\( s.charAt )
EN

Stack Overflow用户
提问于 2014-01-01 23:18:21
回答 4查看 1.6K关注 0票数 0

我正在做一个字母计数程序。与使用26种情况不同,是否有办法用一种情况来增加字符串中字母的计数。能简化这个程序吗?

代码语言:javascript
复制
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.");
      }
   }
}   

有没有办法简化这个程序,以便只有一个条件,而不是26个条件?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-01-01 23:21:48

只需使用大于和小于运算符:

代码语言:javascript
复制
if (s.charAt(i) >= 'a' && s.charAt(i) <= 'z')
票数 8
EN

Stack Overflow用户

发布于 2014-01-01 23:31:26

你甚至不需要循环。

代码语言:javascript
复制
int count = str.replaceAll("[^a-zA-Z]","").length();
System.out.println("There are " + count + " letters in the string you entered.");
票数 4
EN

Stack Overflow用户

发布于 2014-01-01 23:23:44

您可以使用Java的字符类:

代码语言:javascript
复制
public String numLetters(String str){
    int count=0;
    for(int i=0; i<str.length(); i++){
        if(Character.isLetter(str.charAt(i))){
            count++;
        }
    }
    return count;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20874285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档