import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; class test extends JFrame { 
    String i = "下面的文本域里现在共有"; 
    public test( ) { 
        setTitle( i + "0个字符。" );         final TextArea ta = new TextArea( ); 
        ta.addTextListener( new TextListener( ) { 
            public void textValueChanged( TextEvent e ) { 
                setTitle(i+ta.getText( ).length( )+"个字符。"); 
            } 
        });
        getContentPane( ).add( ta ); 
        pack( ); 
        setLocation( 200, 200 ); 
        setDefaultCloseOperation( EXIT_ON_CLOSE ); 
        setVisible( true ); 
    }     public static void main( String[ ] args ) { 
        new test( ); 
    } 

 我要怎么分别统计字母个数
                 文字个数
                 空格个数?
本人是学生  希望大家提点下   谢了

解决方案 »

  1.   


    import java.io.*;
    public class NewDemo{    private BufferedReader bf = null;
        private String str="";    public NewDemo()
        {
            int English=0,space=0,number=0;
            System.out.println("Input(请输入一行字符包含中英文字母、空格、数字)");
            try{
                bf = new BufferedReader(new InputStreamReader(System.in));
                str=bf.readLine();
                }catch(Exception e){
                    e.printStackTrace();
                }
            for(int i=0;i<str.length();i++)
            {
                
                char temp=str.charAt(i);
                if((temp>='a'&&temp<'z')||(temp>='A'&&temp<='Z'))
                    English++;
                else if(temp>='0'&&temp<='9')
                    number++;
                else if((int)temp==32)
                    space++; 
            }
            System.out.println(str);
            System.out.println("中英文字母的个数为:"+English);
            System.out.println("数字的个数为:"+number);
            System.out.println("空格的个数为:"+space);
        }
        public static void main(String args[])
        {
            NewDemo nd=new NewDemo();
        }
    }
      

  2.   

    String str = ta.getText();
    int space = 0, num = 0, letter = 0;//记录空格、数字、字符个数
    for (int i = 0; i < str.length(); i++) {
    char c = str.charAt(i);
    if (c == ' ')
    space++;
    if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
    letter++;
    if (c >= '0' && c <= '9')
    num++;
    }
    System.out.println(space+":"+num+":"+letter);
      

  3.   

    1-5:dccda
    6-8:Xba
    7-8:bd
    9-10:bc
    12:b
    13:c
    14:调用数组的length属性
    15:a
      

  4.   

    正则中可以使用中文的unicode编码来表示:如
    [\uXXXX-\u****]表示这个XXXX--****编码范围内的字符
      

  5.   

    呵呵  知道了  用不到正则   判断了数字和空格和字母  那剩下的就是文字了  再else就得了  谢谢大家