解决方案 »

  1.   

    System.out.print("小写字母共有 "+abcCount+" 个,分别为:");
                for(int i = 0;i < abcStr.length;i++){
                    System.out.print(abcStr[i]+" ");
                }
                System.out.println();
    我知道这些重复的代码最好用函数来是实现。
    但这个毕竟只是测试类。
      

  2.   


    import java.util.Scanner;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;/**
     * 字符串分类
     * @author prime_cjj
     * function:输入一段字符串,判断是否有中文,有的话并输出,共有多少个大小写字母、数字空格号跟其他符号,并分别列出来
     */
    public class StringClassified { public static void main(String[] args) {
    checkfilename("输入一段字符串,ssss判断是否有中文dd,有的话并输d出,共有多w少个大小5写字母、数字空e6格号跟其他符号,并f分别列s出来");

    }

     public static void checkfilename(String s){  
            s=new String(s.getBytes());//用GBK编码
            String pattern="[\u4e00-\u9fa5]+";  
            Pattern p=Pattern.compile(pattern);  
            Matcher result=p.matcher(s);                  
            while (result.find()) {
    System.out.println(result.group());
    }
      }}
      

  3.   

    都学JAVA了  还是面向过程的编程习惯
      

  4.   

    package com.cjj.upgrades;import java.lang.reflect.Array;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Scanner;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class StringClassfied {

    static String str;

    public StringClassfied(){
    System.out.println("请随意敲击键盘,我可以帮你分析哦!");
    Scanner sc = new Scanner(System.in);  //创建一个Scanner对象用来读取键盘输入
    str = sc.nextLine(); //将读取到的数据转化为字符串类型
    }

    //分析
    public void ClassifyString(String str){
            /*
     * 存在中文
     * 判断
     * public boolean matches(String regex)
     * 告知此字符串是否匹配给定的正则表达式。
     */
    if(str.matches(".*[\\u4e00-\\u9faf].*")){
    String pattern="[\u4e00-\u9fa5]";  //正则表达式
            Pattern p=Pattern.compile(pattern);   //将给定的正则表达式编译到模式中。
            Matcher result=p.matcher(str);    //创建匹配给定输入与此模式的匹配器。
              
            ArrayList arrays = new ArrayList();
            
            while (result.find()) { //如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。 
             //将中文存放到arrays中
                arrays.add(result.group());
            }
            System.out.print("存在中文,有  "+arrays.size()+" 个字,分别为:");
            Object[] zhongwen = arrays.toArray();
            print(zhongwen);
    }else{
    System.out.println("不存在中文。");
    }

    System.out.println();

    //小写字母
    if(str.matches(".*[a-z].*")){
    String pattern="[a-z]";  //正则表达式
            Pattern p=Pattern.compile(pattern);   //将给定的正则表达式编译到模式中。
            Matcher result=p.matcher(str);    //创建匹配给定输入与此模式的匹配器。           
            
            ArrayList arrays = new ArrayList();
            
            while (result.find()) { //如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。 
             //将对象存放到arrays中
                arrays.add(result.group());
            }
            System.out.print("存在小写字母,有  "+arrays.size()+" 个,分别为:");
            Object[] SmallLetter = arrays.toArray();
            print(SmallLetter);
    }else{
    System.out.println("不存在小写字母。");
    }

    System.out.println();

    //大写字母
    if(str.matches(".*[A-Z].*")){
    String pattern="[A-Z]";  //正则表达式
            Pattern p=Pattern.compile(pattern);   //将给定的正则表达式编译到模式中。
            Matcher result=p.matcher(str);    //创建匹配给定输入与此模式的匹配器。           
            
            ArrayList arrays = new ArrayList();
            
            while (result.find()) { //如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。 
             //将对象存放到arrays中
                arrays.add(result.group());
            }
            System.out.print("存在大写字母,有  "+arrays.size()+" 个,分别为:");
            Object[] SmallLetter = arrays.toArray();
            print(SmallLetter);
    }else{
    System.out.println("不存在大写字母。");
    }

    System.out.println();

    //数字
    if(str.matches(".*[0-9].*")){
    String pattern="[0-9]";  //正则表达式
            Pattern p=Pattern.compile(pattern);   //将给定的正则表达式编译到模式中。
            Matcher result=p.matcher(str);    //创建匹配给定输入与此模式的匹配器。           
            
            ArrayList arrays = new ArrayList();
            
            while (result.find()) { //如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。 
             //将对象存放到arrays中
                arrays.add(result.group());
            }
            System.out.print("存在数字,有  "+arrays.size()+" 个,分别为:");
            Object[] SmallLetter = arrays.toArray();
            print(SmallLetter);
    }else{
    System.out.println("不存在数字。");
    }

    System.out.println();

    //空格号
    if(str.matches(".*[ ].*")){
    String pattern="[ ]";  //正则表达式
            Pattern p=Pattern.compile(pattern);   //将给定的正则表达式编译到模式中。
            Matcher result=p.matcher(str);    //创建匹配给定输入与此模式的匹配器。           
            
            ArrayList arrays = new ArrayList();
            
            while (result.find()) { //如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。 
             //将对象存放到arrays中
                arrays.add(result.group());
            }
            System.out.print("存在空格号,有  "+arrays.size()+" 个");
            
    }else{
    System.out.println("不存在空格号。");
    }

    System.out.println();

    //符号
    if(str.matches(".*[^A-Za-z0-9_].*")){
    String pattern="[^A-Za-z0-9_]";  //正则表达式
            Pattern p=Pattern.compile(pattern);   //将给定的正则表达式编译到模式中。
            Matcher result=p.matcher(str);    //创建匹配给定输入与此模式的匹配器。           
            
            ArrayList arrays = new ArrayList();
            
            while (result.find()) { //如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。 
             //将对象存放到arrays中
                arrays.add(result.group());
            }
            System.out.print("存在符号,有  "+arrays.size()+" 个,分别为:");
            Object[] SmallLetter = arrays.toArray();
            print(SmallLetter);
    }else{
    System.out.println("不存在数字。");
    }

    System.out.println();



    }

    public void print(Object[] obj){
    for(int i = 0;i < obj.length;i++){
    System.out.print(obj[i]+" ");
    }
    }

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    StringClassfied sc1 = new StringClassfied();
    sc1.ClassifyString(str);

    }}
    感谢你的提示,我查阅了API以及搜索了正则表达式的使用。
    根据你的提示,我修改了下代码(如上),但是有一个问题,就是符号比如逗号,句号如何用正则表达式来判断?
      

  5.   

    谢谢你的指正,我已经修改了代码,java本来就是面向对象的思想。