A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 744919632 中级黑马   /  2015-12-15 20:23  /  638 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

【程序7】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
程序分析:利用while语句,条件为输入的字符不为'\n'.
  
import  java.util.Scanner;
  
public class  Prog7_1{
  
    public static void main(String[] args){
  
        System.out.print("请输入一串字符:");
  
        Scanner scan = new Scanner(System.in);
  
        String str = scan.nextLine();//将一行字符转化为字符串
  
        scan.close();
  
        count(str);
  
    }
  
    //统计输入的字符数
  
    private static void count(String str){
  
        String E1 =  "[\u4e00-\u9fa5]";//汉字
  
        String E2 = "[a-zA-Z]";
  
        String E3 = "[0-9]";
  
        String E4 = "\\s";//空格
  
        int countChinese = 0;
  
        int countLetter = 0;
  
        int countNumber = 0;
  
        int countSpace = 0;
  
        int countOther = 0;
  
        char[] array_Char =  str.toCharArray();//将字符串转化为字符数组
  
        String[] array_String = new  String[array_Char.length];//汉字只能作为字符串处理
  
        for(int  i=0;i<array_Char.length;i++)
  
           array_String = String.valueOf(array_Char);
  
        //遍历字符串数组中的元素
  
        for(String s:array_String){
  
            if(s.matches(E1))
  
               countChinese++;
  
            else if(s.matches(E2))
  
               countLetter++;
  
            else if(s.matches(E3))
  
               countNumber++;
  
            else if(s.matches(E4))
  
               countSpace++;
  
            else
  
               countOther++;
  
        }
  
        System.out.println("输入的汉字个数:"+countChinese);
  
        System.out.println("输入的字母个数:"+countLetter);
  
        System.out.println("输入的数字个数:"+countNumber);
  
        System.out.println("输入的空格个数:"+countSpace);
  
        System.out.println("输入的其它字符个数:"+countSpace);
  
    }
  
}
  
import  java.util.*;
  
public class  Prog7_2{
  
    public static void main(String[] args){
  
       System.out.println("请输入一行字符:");
  
       Scanner scan = new Scanner(System.in);
  
       String str = scan.nextLine();
  
       scan.close();
  
       count(str);
  
    }
  
    //统计输入的字符
  
    private static void count(String str){
  
        List<String> list = new  ArrayList<String>();
  
        char[] array_Char = str.toCharArray();
  
        for(char c:array_Char)
  
           list.add(String.valueOf(c));//将字符作为字符串添加到list表中
  
        Collections.sort(list);//排序
  
        for(String s:list){
  
            int begin = list.indexOf(s);
  
            int end = list.lastIndexOf(s);
  
            //索引结束统计字符数
  
            if(list.get(end)==s)
  
               System.out.println("字符‘"+s+"’有"+(end-begin+1)+"个");
  
        }
  
    }
  
}
【程序8】
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
程序分析:关键是计算出每一项的值。
  
import  java.util.Scanner;
  
  
public class  Prog8{
  
    public static void main(String[] args){
  
        System.out.print("求s=a+aa+aaa+aaaa+...的值,请输入a的值:");
  
        Scanner scan = new  Scanner(System.in).useDelimiter("\\s*");//以空格作为分隔符
  
        int a = scan.nextInt();
  
        int n = scan.nextInt();
  
        scan.close();//关闭扫描器
  
        System.out.println(expressed(2,5)+add(2,5));
  
    }
  
    //求和表达式
  
    private static String expressed(int a,int  n){
  
        StringBuffer sb = new StringBuffer();
  
        StringBuffer subSB = new  StringBuffer();
  
        for(int i=1;i<n+1;i++){
  
           subSB = subSB.append(a);
  
           sb = sb.append(subSB);
  
           if(i<n)
  
             sb = sb.append("+");
  
        }
  
        sb.append("=");
  
        return sb.toString();
  
    }
  
    //求和
  
    private static long add(int a,int n){
  
        long sum = 0;
  
        long subSUM = 0;
  
        for(int i=1;i<n+1;i++){
  
            subSUM = subSUM*10+a;
  
            sum = sum+subSUM;
  
        }
  
        return sum;
  
    }
  
}
  

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马