package select;
import java.util.Scanner;
import java.io.*;
public class SelectWhat
{
private Scanner scanner;
public SelectWhat()
{
int English=0,space=0,number=0;
System.out.println("Input(请输入一行字符包含中英文字母、空格、数字)");
scanner=new Scanner(System.in);
String str=scanner.nextLine();
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==10)
    space++; 
}
System.out.println("中英文字母的个数为:"+English);
System.out.println("数字的个数为:"+number);
System.out.println("空格的个数为:"+space);
}
public static void main(String args[])
{
SelectWhat s=new SelectWhat();
}
}
空格怎么总是统计不出来,scanner.nextLine()总是跳过空格!
怎么才能统计出其中的空格啊?

解决方案 »

  1.   


    else if((int)temp==32)
        space++; 
      

  2.   

    package select;
    import java.util.Scanner;
    import java.io.*;
    public class SelectWhat
    {
        private Scanner scanner;
        public SelectWhat()
        {
            int English=0,space=0,number=0;
            System.out.println("Input(请输入一行字符包含中英文字母、空格、数字)");
            scanner=new Scanner(System.in);
            String str=scanner.nextLine();
            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(temp==" ".charAt(0))//改一下此处,就可以了
                    space++; 
            }
            System.out.println("中英文字母的个数为:"+English);
            System.out.println("数字的个数为:"+number);
            System.out.println("空格的个数为:"+space);
        }
        public static void main(String args[])
        {
            SelectWhat s=new SelectWhat();
        }
    }
      

  3.   


    package select;
    import java.util.Scanner;
    import java.io.*;
    public class SelectWhat
    {
        private Scanner scanner;
        public SelectWhat()
        {
            int English=0,space=0,number=0;
            System.out.println("Input(请输入一行字符包含中英文字母、空格、数字)");
            scanner=new Scanner(System.in);
            String str=scanner.nextLine();
            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(temp==" ".charAt(0))//改一下此处,就可以了
                    space++; 
            }
            System.out.println("中英文字母的个数为:"+English);
            System.out.println("数字的个数为:"+number);
            System.out.println("空格的个数为:"+space);
        }
        public static void main(String args[])
        {
            SelectWhat s=new SelectWhat();
        }
    }
      

  4.   

    很少像那样用Scanner,直接这样吧: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();
        }
    }