这是我写的统计一个输入字符串的程序,  但我不知道怎么调用输入字符串函数?哪位高手告诉我一下,谢谢。  现在我只能输入单个字符。  程序://输入字符串中字符中字母,数字和其他字符数目。class  e2{
  public static void main(String args[])
    throws java.io.IOException{
    int count_char=0;
    int count_number=0;
    int count_other=0;
    String s=" ";
    char   c=' ';
    System.out.print("Please input the String numbers:");
    
    c=(char) System.in.read();  //就是这行,怎么输入字符串??      for(int i=0;i<s.length();i++){   //从字符串中逐个获取字符
        
        if(c>='a'&&c<='z'||c>='A'&&c<='Z')  count_char++;    //统计字母个数
        
        else if(c>='0'&&c<='9')  count_number++;             //统计数字个数
        
             else   count_other++;
     }
     System.out.println("count_char="+count_char);
     System.out.println("count_number"+count_number);
     System.out.println("count_other"+count_other);
  }
}
请大家指点,我是初学java的,谢谢大家。 

解决方案 »

  1.   

    BufferedReaderStream就可以,具体的可以看看api文档,网上也有很多例子。
      

  2.   

    谢谢楼上,我已经知道了。但现在还是有个问题,这个程序编译没有问题,但运行的时候不是我要的结果,请大家帮忙看看,我哪里出错了?  谢谢。import java.io.*;
    class  e2{
      public static void main(String args[])
        throws java.io.IOException{
        int count_char=0;
        int count_number=0;
        int count_other=0;
        String s=" ";
        char   c=' ';
        System.out.print("Please input the String numbers:");
        BufferedReader  br=new  BufferedReader(new  InputStreamReader(System.in));
      
        s=br.readLine();    //从键盘输入字符 ******************
        for(int i=1;i<s.length();i++){   //从字符串中逐个获取字符
        
         if(c>='a'&&c<='z')  count_char++;    //统计字母个数||(c>='A'&&c<='Z')
        
         else if(c>='0'&&c<='9')  count_number++;             //统计数字个数
        
              else   count_other++;
         }
         System.out.println("count_char="+count_char);
         System.out.println("count_number="+count_number);
         System.out.println("count_other="+count_other);
      }
    }
      

  3.   

    你应定义char[] c.然后用c = s.toCharArray();然后再对c来处理。你程序没有任何地方给char c赋值啊。
      

  4.   

    s=br.readLine();    //从键盘输入字符 ******************
        c = s.toCharArray();
        for(int i=1;i<c.length;i++){   //从字符串中逐个获取字符
            if(c[i]>='a'&&c[i]<='z')  count_char++;    //统计字母个数||(c>='A'&&c<='Z')
            
            else if(c[i]>='0'&&c[i]<='9')  count_number++;             //统计数字个数
            
                 else   count_other++;    
        }
      

  5.   

    //   编译还是有问题   就是这条语句:c=s.toCharArray();     //?????????????????
    import java.io.*;
    class  e2{
      public static void main(String args[])
        throws java.io.IOException{
        int count_char=0;
        int count_number=0;
        int count_other=0;
        String s=" ";
        char   c=' ';
        System.out.print("Please input the String numbers:");
        BufferedReader  br=new  BufferedReader(new  InputStreamReader(System.in));
      
        s=br.readLine();    //从键盘输入字符
        
        c=s.toCharArray();     //?????????????????
        
        for(int i=1;i<s.length();i++){   //从字符串中逐个获取字符
        
         if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))  count_char++;    //统计字母个数
        
         else if(c>='0'&&c<='9')  count_number++;             //统计数字个数
        
              else   count_other++;
         }
         System.out.println("count_char="+count_char);
         System.out.println("count_number="+count_number);
         System.out.println("count_other="+count_other);
      }
    }请问c=s.toCharArray();        怎么错了?
      

  6.   

    s.toCharArray()返回的是char[],不是char
      

  7.   


    import java.io.BufferedReader;
    import java.io.InputStreamReader;class e2 {
    public static void main(String args[]) throws java.io.IOException {
    int count_char = 0;
    int count_number = 0;
    int count_other = 0;
    String s = " ";
    char c = ' ';
    char[] cs = null;
    System.out.print("Please input the String numbers:");
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); s = br.readLine(); // 从键盘输入字符 cs = s.toCharArray(); // ????????????????? for (int i = 1; i < cs.length ; i++) { // 从字符串中逐个获取字符
                c = cs[i];
    if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
    count_char++; // 统计字母个数 else if (c >= '0' && c <= '9')
    count_number++; // 统计数字个数 else
    count_other++;
    }
    System.out.println("count_char=" + count_char);
    System.out.println("count_number=" + count_number);
    System.out.println("count_other=" + count_other);
    }
    }
      

  8.   

    wizardblue(不死鱼):是的,编译错误提示也是这样告诉我的,请问我应该怎么修改一下?
      

  9.   

    还是不行,编译时总是告诉我:  can not be applied to char[],char请大家指点。
      

  10.   

    已经可以了,感谢大家。  是这里的问题 //for (int i = 1; i < cs.length ; i++)   //应该是   for (int i = 1; i < s.length ; i++)  //  是s.length而不是cs.length