黑马程序员技术交流社区

标题: -----------------答题活动:成绩等级与字符串---------------------- [打印本页]

作者: 杨增坤    时间: 2013-11-12 21:36
标题: -----------------答题活动:成绩等级与字符串----------------------
本帖最后由 杨增坤 于 2013-11-17 16:44 编辑

此活动结束了,大家有不懂的地方可以参考一下其他人的代码,现在大家可以查看了!
第一题
       学生成绩分为四个等级:90~100:优,80~89:良,70~79:中,60~69:及格,0~60:不及格。   
         要求:   
             1.输入一个学生的成绩:例如 99,那么输出优。        
             2.输入成绩必须是整数,范围是0~100,超过范围或者输入的不是整数,要做相应的处理。   
             3.可以连续输入成绩,当输入over的时候,结束输入成绩


第二题
         从控制台字符串,将输入的字符串中的小写字母转换成大写字母,大写字母转换成小写字母,数字转换成#符号。
         要求:
            1.输入的必须只能包含数字和字母。
            2.输出的要求要清晰明了。
                 例如:abd12AN45Ngk
                     转换后的是:
                       ABD##an##nGK

注意:
        1.要使用注释把程序清晰的呈现出来。
        2.要把每个步骤的思路写出来。
        3.提交程序要注意排版或者打包。例如:张三.zip
        4.不要重复回帖。

评分要求:
          第一题:3分
          第二题:2分。
             要把所有功能全部实现,最好能使用多种方法来实现,做的完善的给满分,不完善的会根据做的程序给相应的分值。希望大家赶快行的起来吧,技术分在等着您呢。

                                   相信自己都是最棒的!!
                                 截止时间为本周日


作者: FFF    时间: 2013-11-12 21:43
本帖最后由 FFF 于 2013-11-13 12:48 编辑

前排,先留名。再慢慢写!
题目1:
  1. import java.util.Scanner;

  2. /*
  3. *需求:1.输入一个学生的成绩:例如 99,那么输出优。
  4. *2.输入成绩必须是整数,范围是0~100,超过范围或者输入的不是整数,要做相应的处理。   
  5. *3.可以连续输入成绩,当输入over的时候,结束输入成绩
  6. */
  7. /*思路:看到这个题目,我第一个想到的就是用查表法来做。代码如下。
  8. *
  9. *
  10. */
  11. //声明一个类,用于处理传入的数据
  12. class studnt {
  13.         // 声明一个用于接收成绩的变量
  14.         int grade;
  15.         // 声明一个数组,用于查表法
  16.         String[] st = new String[] { "极差", "极差", "极差", "极差", "很差", "及格", "中等", "良",
  17.                         "优秀", "优秀", "极优" };

  18.         // 声明一个构造函数,用于传入参数
  19.         studnt(int grade) {
  20.                 this.grade = grade / 10;
  21.         }

  22.         // 声明一个空的构造函数,以免实例化时出错
  23.         studnt() {
  24.         }

  25.         // 重写toString用于付出参数
  26.         public String toString() {
  27.                 return st[grade];
  28.         }
  29. }

  30. public class DemoTemp {
  31.         // 入口
  32.         public static void main(String[] args) {
  33.                 // 实例化studnt类,方便下面使用。
  34.                 studnt st = new studnt();
  35.                 // 实例Scanner用于输入
  36.                 Scanner sc = new Scanner(System.in);
  37.                 // 定一个标记,用于跳出循环
  38.                 boolean flag = false;
  39.                 // 由于是可重复输入的,所以用while当标记flag不为over时,一直运行下去。
  40.                 while (!flag) {
  41.                         // 因为可能存在输入非数字的情况,所以使用异常捕捉try,catch。怎么方便怎么来
  42.                         try {
  43.                                 // 提示指令
  44.                                 System.out.println("请输入您的学生成绩\n输入OVER退出");
  45.                                 // 用于接收输入的数据
  46.                                 String str = sc.next();
  47.                                 // 先判断输入的数据是否是结束语句"OVER",是结束则跳出循环结束运行。
  48.                                 if ((str.equals("OVER")) || (str.equals("over")))
  49.                                         flag = true;
  50.                                 // 否则进入下一个流程
  51.                                 else {
  52.                                         // 把输入的数据转为整数类型,不怕出错。出错有catch捕捉
  53.                                         int s = Integer.parseInt(str);
  54.                                         // 判断数字是否在要求的范围内
  55.                                         if ((s > 0) && (s <= 100)) {
  56.                                                 // 是,则传入数据,并输入结果
  57.                                                 System.out.println(new studnt((s)));
  58.                                         } else {
  59.                                                 // 否,则跳出提示。
  60.                                                 System.out.println("请输入0至100的数");
  61.                                         }
  62.                                 }
  63.                         }
  64.                         // 因为这里有try所以,只要用户输入的不是数字。会跳出提示。
  65.                         catch (Exception e) {
  66.                                 System.out.println("输入错误!请重新输入。(请勿输入非整形数字以外的字符)");
  67.                         }
  68.                 }
  69.         }
  70. }
复制代码
问题1:实现方法2
  1. import java.util.Scanner;
  2. class studnt{
  3.         //实现方法2  switch方法。与if,else方法一样的实现方法。我就不写if方法了。
  4.         public void count(int grand){
  5.                 //把传入的数据处理一下。方法判断。
  6.                 grand=grand/10;
  7.                 //使用switch开始判断
  8.                 switch(grand){
  9.                 case 10:
  10.                         System.out.println("极优");
  11.                         break;
  12.                 case 9:
  13.                         System.out.println("优秀");
  14.                         break;
  15.                 case 8:
  16.                         System.out.println("优秀");
  17.                         break;
  18.                 case 7:
  19.                         System.out.println("良");
  20.                         break;
  21.                 case 6:
  22.                         System.out.println("中等");
  23.                         break;
  24.                 case 5:
  25.                         System.out.println("及格");
  26.                         break;
  27.                 case 4:
  28.                         System.out.println("很差");
  29.                         break;
  30.                 default:
  31.                         System.out.println("同学,明天叫你家长来一下学校!");        
  32.                 }
  33.         }

  34. }

  35. public class DemoTemp {
  36.     public static void main(String[] args) {
  37.         // 实例化studnt类,方便下面使用。
  38.         studnt st = new studnt();
  39.         // 实例Scanner用于输入
  40.         Scanner sc = new Scanner(System.in);
  41.         // 定一个标记,用于跳出循环
  42.         boolean flag = false;
  43.         // 由于是可重复输入的,所以用while当标记flag不为over时,一直运行下去。
  44.         while (!flag) {
  45.                 // 因为可能存在输入非数字的情况,所以使用异常捕捉try,catch。怎么方便怎么来
  46.                 try {
  47.                         // 提示指令
  48.                         System.out.println("请输入您的学生成绩\n输入OVER退出");
  49.                         // 用于接收输入的数据
  50.                         String str = sc.next();
  51.                         // 先判断输入的数据是否是结束语句"OVER",是结束则跳出循环结束运行。
  52.                         if ((str.equals("OVER")) || (str.equals("over")))
  53.                                 flag = true;
  54.                         // 否则进入下一个流程
  55.                         else {
  56.                                 // 把输入的数据转为整数类型,不怕出错。出错有catch捕捉
  57.                                 int s = Integer.parseInt(str);
  58.                                 // 判断数字是否在要求的范围内
  59.                                 if ((s > 0) && (s <= 100)) {
  60.                                         // 是,则传入数据,并输入结果
  61.                                         st.count(s);
  62.                                 } else {
  63.                                         // 否,则跳出提示。
  64.                                         System.out.println("请输入0至100的数");
  65.                                 }
  66.                         }
  67.                 }
  68.                 // 因为这里有try所以,只要用户输入的不是数字。会跳出提示。
  69.                 catch (Exception e) {
  70.                         System.out.println("输入错误!请重新输入。(请勿输入非整形数字以外的字符)");
  71.                 }
  72.         }
  73. }
  74. }
复制代码
题目2:
  1. /*
  2. * 需求:从控制台字符串,将输入的字符串中的小写字母转换成大写字母,
  3. *                 大写字母转换成小写字母,数字转换成#符号。
  4. *
  5. *
  6. * 思路:把输入的字符,一个个拆开来判断。是否为字符或数字。是则进行转换。否则跳出提示。
  7. *                 判断可以通过把String转换为Char来判断。
  8. *                 最后把转换后的字符输出。
  9. *
  10. */
  11. public class DemoCase {
  12.         // 定下标点,当输入的数据中含有非字母与数字时。跳出循环。
  13.         static boolean flag = false;

  14.         // 入口
  15.         public static void main(String[] args) throws Exception {
  16.                 // 输入数据
  17.                 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  18.                 System.out.println("请输入要转换的字符、按回车键结束");
  19.                 // 因为是字符与数字混合,所以用String类型
  20.                 String x = br.readLine();
  21.                 // 声明一个数字点,用到while计算
  22.                 int flagOne = 0;
  23.                 // 声明一个char用于把转入的数据的储存,方便于使用char方法
  24.                 char k;
  25.                 // 声明一个用于输出的String
  26.                 String arr = "";
  27.                 // 建立while循环,条件为:当数字标点小于输入的字符长度时,无限的运行下去。
  28.                 while ((flagOne < x.length()) && !flag) {
  29.                         // 取一个字符,用于转换。一个一个来转换
  30.                         k = x.charAt(flagOne);
  31.                         // 调用转换的方法
  32.                         k = shift(k);
  33.                         // 标点,加1。转换完一个,就加1
  34.                         flagOne++;
  35.                         // 把转换出来的字符集合起来。用于转换完后的输出
  36.                         arr = arr + k;
  37.                 }
  38.                 // 当转换出来的倒是字母与数字时,才输出。
  39.                 if (!flag)
  40.                         // 输出语句
  41.                         System.out.println(arr);
  42.         }

  43.         // 用于转换的方法,接收一个char类型的数据。
  44.         static char shift(char s) {
  45.                 // 判断是否为大写,是则换为小写字母
  46.                 if (s <= 'Z' && s >= 'A')
  47.                         // 转换大小写语句
  48.                         s = Character.toLowerCase(s);
  49.                 else
  50.                 // 判断是否为小写。是则换成大写字母
  51.                 if (s <= 'z' && s >= 'a')
  52.                         // 小写转换成大写的语句
  53.                         s = Character.toTitleCase(s);
  54.                 else
  55.                 // 如果以上都不是,则判断是否为数字,是则转换成“#”字符
  56.                 if (s <= 57 && s >= 48)
  57.                         s = '#';
  58.                 // 如果不是字母,也不是数字。则提示错误。结束程序
  59.                 else {
  60.                         // 输出提示
  61.                         System.out.println("输入错误,程序结束。输入的字符只能包含数字和字母。");
  62.                         // 把标点改为true。让上面的while跳出循环
  63.                         flag = true;
  64.                 }
  65.                 // 返回s。用于累加
  66.                 return s;
  67.         }
  68. }
复制代码

作者: Rockray    时间: 2013-11-12 21:48
占个楼明天写可以吗
作者: 零下五度的水    时间: 2013-11-12 23:12
以上纯属废话,因为不能少于10个字。。

零下五度的水.zip

1.52 KB, 下载次数: 107


作者: zhanghuxin    时间: 2013-11-12 23:21
答题活动:成绩等级

张虎新.zip

813 Bytes, 下载次数: 78

答题活动:成绩等级


作者: ysunday    时间: 2013-11-12 23:48
  1. import java.util.*;
  2. public class GradeRank{
  3.         public static void main(String[] args){
  4.                 //scan to get the input number
  5.                 Scanner scan = new Scanner(System.in);
  6.                 //set a string to accept the input string
  7.                 String grade = null;
  8.                 while(true){
  9.                         sop("please input a num");
  10.                         //get the input string
  11.                         grade = scan.next();
  12.                         if(grade.equals("over"))//if the string is over,exit
  13.                                 break;
  14.                         String reg = "\\d+";
  15.                         //judge if no input or format is wrong
  16.                         if(grade != null && grade.matches(reg))
  17.                                 try{
  18.                                         //rank the grade
  19.                                         rank(Integer.valueOf(grade));
  20.                                 }catch(Exception e){
  21.                                         //print the exception
  22.                                         sop(e.toString());
  23.                                 }
  24.                         else{
  25.                                 sop("please input the right format");
  26.                                 sop("");
  27.                                 continue;
  28.                         }
  29.                         sop("");
  30.                 }
  31.         }
  32.         public static void rank(int grade) throws Exception{
  33.                 //handle the num from large to small
  34.                 if(grade > 100){
  35.                         //throw exception
  36.                         throw new Exception("out the range");
  37.                 }else if(grade >= 90){
  38.                         //judge  and print if grade  is you
  39.                         sop(grade + ": excellent");
  40.                 }else if(grade >= 89){
  41.                         //judge and print if grade is liang
  42.                         sop(grade + ": good");
  43.                 }else if(grade >= 79){
  44.                         //judge and print if grade is zhong
  45.                         sop(grade + ": juts so so");
  46.                 }else if(grade >= 60){
  47.                         //failed
  48.                         sop(grade + ": just pass");
  49.                 }else{
  50.                         sop("failed");
  51.                 }
  52.         }
  53.         // a method to print
  54.         public static void sop(Object obj){
  55.                 System.out.println(obj);
  56.         }
  57. }
复制代码

2题
  1. import java.util.*;
  2. public class ChangeCase{
  3.         public static void main(String[] args) throws Exception{
  4.                 //scan to get the input
  5.                 Scanner scan = new Scanner(System.in);
  6.                 //set a string to accept the input string
  7.                 String s = scan.next();
  8.                 //print the string
  9.                 System.out.println(s);
  10.                 //print new string
  11.                 System.out.println(changeCase(s));
  12.         }
  13.         //the method to changeCase
  14.         public static String changeCase(String s) throws Exception{
  15.                 //new string to store new string
  16.                 String news = "";
  17.                 //regex to judge if the sting is in right format
  18.                 String reg = "\\w+";
  19.                 if(!s.matches(reg)){//if not throw Exception
  20.                         throw new Exception("wrong format!");
  21.                 }
  22.                 //to change the string
  23.                 for(int x = 0; x < s.length(); x++){
  24.                         //get the char at index x
  25.                         char c = s.charAt(x);
  26.                         //judge if the number
  27.                         if(c >= '0' && c <= '9')
  28.                                 //change to "#"
  29.                                 news += "#";
  30.                         //judge if upcase
  31.                         else if(c >= 'A' && c <= 'Z')
  32.                                 //change to lowcase
  33.                                 news += (char)(c + 32) + "";
  34.                         //judge if lowcase
  35.                         else if(c >= 'a' && c <= 'z')
  36.                                 //change to upcase
  37.                                 news += (char)(c - 32) + "";
  38.                 }
  39.                 //return new string
  40.                 return news;
  41.         }
  42. }
复制代码


谢谢版主的阅览!


作者: To    时间: 2013-11-13 00:29
支持!!!
作者: 七道    时间: 2013-11-13 01:09
上传压缩包都要输入字符,所以乱写

example.zip

5.31 KB, 下载次数: 88


作者: 简★零度    时间: 2013-11-13 02:30
第一题.rar (921 Bytes, 下载次数: 2)


作者: Θ动@咚Θ    时间: 2013-11-13 03:46
给自己加油!

邢栋.zip

1.59 KB, 阅读权限: 100, 下载次数: 1


作者: 残影    时间: 2013-11-13 09:27
交卷期限呢?
作者: 秦大忠    时间: 2013-11-13 10:28
坤哥,麻烦你看看了

秦大忠.zip

2.25 KB, 下载次数: 84


作者: 赵晓海    时间: 2013-11-13 10:40
本帖最后由 赵晓海 于 2013-11-13 12:47 编辑

做的第一个,第二个基础测试上做过,不好意思传做过的。
更新了一下,把第二个也传上去了

bbs.zip

6.29 KB, 下载次数: 107


作者: ∏艾力克斯※    时间: 2013-11-13 12:17
本帖最后由 ∏艾力克斯※ 于 2013-11-13 12:21 编辑

第一题:
  1. /**
  2.          * 学生成绩分为四个等级:90~100:优,80~89:良,70~79:中,60~69:及格,0~60:不及格。
  3.          *
  4.          * 要求: 1.输入一个学生的成绩:例如 99,那么输出优。
  5.          *
  6.          * 2.输入成绩必须是整数,范围是0~100,超过范围或者输入的不是整数,要做相应的处理。
  7.          *
  8.          * 3.可以连续输入成绩,当输入over的时候,结束输入成绩
  9.          */
  10.         private static Scanner input = new Scanner(System.in);

  11.         public static void main(String[] args) {
  12.                 inputStuScore();//输入成绩

  13.         }

  14.         

  15.         public static void inputStuScore() {
  16.                 while (true) {
  17.                         System.out.print("请输入学生成绩:");
  18.                         String answer = input.next();// 接受输入

  19.                         if (answer != null && answer.equals("over")) {
  20.                                 System.out.println("退出系统!");
  21.                                 break;// 退出
  22.                         }

  23.                         showStuScore(answer);// 处理指令

  24.                 }
  25.         }

  26.         /**
  27.          * 学生分数判定
  28.          *
  29.          * @param answer
  30.          */
  31.         public static void showStuScore(String answer) {
  32.                 int score = 0;// 学生成绩
  33.                 boolean isInt = false;// 是Int吗?

  34.                 try {
  35.                         score = Integer.valueOf(answer);// 学生成绩赋值
  36.                         isInt = true;
  37.                 } catch (Exception e) {
  38.                         System.out.println("不是数字!请重新输入!");
  39.                         return;
  40.                 }

  41.                 if (isInt) {
  42.                         String rank = "";
  43.                         // 判定学生等级,和错误分数
  44.                         if (score < 0) {
  45.                                 System.out.println("分数低于0,无效");
  46.                                 return;
  47.                         } else if (score > 100) {
  48.                                 System.out.println("分数高于100,无效");
  49.                                 return;
  50.                         }

  51.                         if (score < 60 && score >= 0) {
  52.                                 rank = "不及格";
  53.                         } else if (score <= 69 && score >= 60) {
  54.                                 rank = "及格";
  55.                         } else if (score <= 79 && score >= 70) {
  56.                                 rank = "中";
  57.                         } else if (score <= 89 && score >= 80) {
  58.                                 rank = "良";
  59.                         } else if (score >= 90) {
  60.                                 rank = "优";
  61.                         }
  62.                         System.out.println("当前学生等级是:" + rank);
  63.                 }
  64.         }
复制代码
第二题:
  1. private static Scanner input = new Scanner(System.in);

  2.         public static void main(String[] args) {
  3.                 changeStr();

  4.         }
  5.         /**
  6.          * 从控制台字符串,将输入的字符串中的小写字母转换成大写字母,大写字母转换成小写字母,数字转换成#符号。 要求: 1.输入的必须只能包含数字和字母。
  7.          * 2.输出的要求要清晰明了。 例如:abd12AN45Ngk 转换后的是: ABD##an##nGK
  8.          */
  9.         public static void changeStr() {
  10.                 System.out.println("请输入字符串:");
  11.                 String value = input.next();

  12.                 System.out.println("我们用char字符对应的ASCII码来解决这个问题:");
  13.                 int start = 'a';
  14.                 int end = 'z';
  15.                 System.out.println("a~z的ASCII的范围是:" + start + "~" + end);
  16.                 start = 'A';
  17.                 end = 'Z';
  18.                 System.out.println("A~Z的ASCII的范围是:" + start + "~" + end);
  19.                 System.out.println("我们可以知道,两者之间是带有一个规律的,例如:");
  20.                 char a = 'a';
  21.                 char A = (char) (a - ('a' - 'A'));
  22.                 System.out.println("一个小写字符转换为大写:" + A);
  23.                 System.out.println("由此可知,两者之间的规律为,小写字母的ascii码比大写字母的ascii码大" + (a - A));
  24.                 System.out.println("我们根据ASCII码表可以知道,数字0~9的范围是:48~57");

  25.                 char[] chars = value.toCharArray();// 转换成char数组

  26.                 for (int i = 0; i < chars.length; i++) {
  27.                         if (chars[i] >= 65 && chars[i] <= 90) {// 大写字符ASCII码区间
  28.                                 chars[i] += 32;
  29.                         } else if (chars[i] >= 97 && chars[i] <= 122) {// 大写字符ASCII码区间
  30.                                 chars[i] -= 32;
  31.                         } else if (chars[i] >= 48 && chars[i] <= 57) {// 数字ASCII码区间
  32.                                 chars[i] = '#';
  33.                         }
  34.                 }
  35.                 String str = new String(chars);
  36.                 System.out.println("处理完成后的字符是:" + str);

  37.         }
复制代码

作者: 。。。。。。。    时间: 2013-11-13 13:17
见附件!

题二.zip

1.06 KB, 下载次数: 63

题目一项目

题一.zip

1.1 KB, 下载次数: 96

题目二项目


作者: 龏鈊づ廱鵆ぐ    时间: 2013-11-13 13:48
顶!!!~
作者: pireteMrZ    时间: 2013-11-13 13:53
完成{:soso_e113:}

刘晓东-云7.zip

4.95 KB, 阅读权限: 100, 下载次数: 1


作者: 王雨神    时间: 2013-11-13 13:53
王瑞亚stringTest.zip (7.14 KB, 下载次数: 1)



作者: wuchuang1992    时间: 2013-11-13 14:00
wuchuang1992

wuchuang1992.rar

1.32 KB, 阅读权限: 30, 下载次数: 1


作者: 中关村阿旺    时间: 2013-11-13 14:02
javaee+安卓

苏国旺.zip

7.23 KB, 阅读权限: 100, 下载次数: 1

论坛兄弟交流群中说的java+android也可以回答,没问题吧?


作者: 天ya~_琼楼    时间: 2013-11-13 15:02
新手,第一次参加这类活动,望不吝指正!谢谢!

梁程峰Test.zip

6.17 KB, 阅读权限: 100, 下载次数: 2

答题活动


作者: 简★零度    时间: 2013-11-13 15:09
第二题.rar (729 Bytes, 下载次数: 32)
作者: 龏鈊づ廱鵆ぐ    时间: 2013-11-13 15:18
刚才顶了一个。。。sorry
这是程序..

Test.rar

4.32 KB, 下载次数: 53


作者: 低调的奢华    时间: 2013-11-13 16:00
{:soso__10372570484069073532_4:}    同学辛苦了!

王锐军.zip

2.23 KB, 下载次数: 76


作者: 青年黨衛軍    时间: 2013-11-13 16:41
求撒分~~~求撒分~~~我还差5分~~~

GradeAndString.zip

10.95 KB, 下载次数: 55


作者: 繁华终成泣    时间: 2013-11-13 17:53
第一题:
  1. package cn.djb.string;

  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;

  5. public class Test1 {

  6.         /**
  7.          * @param args
  8.          */
  9.         public static void main(String[] args) {
  10.                 System.out.println("请输入成绩:0~100");
  11.                 BufferedReader br = null;
  12.                 try{
  13.                 //创建一个与键盘录入有关的输入流
  14.                 br = new BufferedReader(new InputStreamReader(System.in));
  15.                 //读取键盘录入数据
  16.                 String line = null;
  17.                 while((line=br.readLine())!=null){
  18.                 //判断程序结束标记
  19.                 if("over".equals(line.trim()))
  20.                         System.exit(0);
  21.                 //判断输入的数据是否符合规则
  22.                 if(!line.matches("\\d{1,3}")||Integer.parseInt(line)>100){
  23.                         System.out.println("输入的成绩格式不正确");
  24.                         continue;
  25.                 }
  26.                 //将成绩转成int型并判断并输出成绩信息
  27.                 int grade = Integer.parseInt(line);
  28.                 if(grade<60)
  29.                         System.out.println("不及格");
  30.                 else if(grade<70)
  31.                         System.out.println("及格");
  32.                 else if(grade<80)
  33.                         System.out.println("中");
  34.                 else if(grade<90)
  35.                         System.out.println("良");
  36.                 else
  37.                         System.out.println("优");
  38.                
  39.                 }
  40.                 }catch (Exception e) {
  41.                         e.printStackTrace();
  42.                 }finally{//释放流资源
  43.                         if(br!=null)
  44.                                 try {
  45.                                         br.close();
  46.                                 } catch (IOException e) {
  47.                                         // TODO Auto-generated catch block
  48.                                         e.printStackTrace();
  49.                                 }
  50.                 }

  51.         }

  52. }
复制代码
第二题:
  1. package cn.djb.string;

  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;

  5. public class Test2 {

  6.         /**
  7.          * @param args
  8.          */
  9.         public static void main(String[] args) {
  10.                 BufferedReader br = null;
  11.                 try{
  12.                 //创建一个与键盘录入有关的输入流
  13.                 br = new BufferedReader(new InputStreamReader(System.in));
  14.                 //读取键盘录入数据
  15.                 String line = null;
  16.                 while((line=br.readLine())!=null){
  17.                 //判断程序结束标记
  18.                 if("over".equals(line.trim()))
  19.                         System.exit(0);
  20.                 //判断输入的数据是否符合规则
  21.                 if(!line.replaceAll("[^a-zA-Z0-9]", "1").equals(line)){
  22.                         System.out.println("输入的数据必须只能包含数字和字母");
  23.                         continue;
  24.                 }
  25.                 //符合规则后先将所有数字替换成#
  26.                 line = line.replaceAll("\\d", "#");
  27.                
  28.                 //将替换后的字符串转成插入char[]数组,遍历并将其转成String进行正则判断后将其转换存入StringBuilder中
  29.                 char[] chars=line.toCharArray();
  30.                 StringBuilder sb = new StringBuilder();
  31.                 for(char ch : chars){
  32.                         String s=String.valueOf(ch);
  33.                         if(s.matches("[a-z]"))
  34.                                 sb.append(s.toUpperCase());
  35.                         else if(s.matches("[A-Z]"))
  36.                                 sb.append(s.toLowerCase());
  37.                         else
  38.                                 sb.append(s);
  39.                 }
  40.                 //输出StringBuilder中的数据
  41.                 System.out.println(sb.toString());
  42.                 }
  43.                 }catch (Exception e) {
  44.                         e.printStackTrace();
  45.                 }finally{//释放流资源
  46.                         if(br!=null)
  47.                                 try {
  48.                                         br.close();
  49.                                 } catch (IOException e) {
  50.                                         // TODO Auto-generated catch block
  51.                                         e.printStackTrace();
  52.                                 }
  53.                 }

  54.        

  55.         }

  56. }
复制代码

作者: ゞ心痛-τ._煩離    时间: 2013-11-13 19:48
Desktop.zip (1.31 KB, 下载次数: 42)
作者: heke    时间: 2013-11-13 22:52
  1. package heima.test;

  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. import java.util.ArrayList;

  6. /*第一题
  7. 学生成绩分为四个等级:90~100:优,80~89:良,70~79:中,60~69:及格,0~60:不及格。   
  8.   要求:   
  9.       1.输入一个学生的成绩:例如 99,那么输出优。        
  10.       2.输入成绩必须是整数,范围是0~100,超过范围或者输入的不是整数,要做相应的处理。   
  11.       3.可以连续输入成绩,当输入over的时候,结束输入成绩
  12. */
  13. public class Test1 {
  14.     public static void main(String[] args) {
  15.             Test1 test=new Test1();
  16.             Integer[] array=test.getArray();
  17.             
  18.            //输出打印  
  19.           for(int i=0;i<array.length;i++){
  20.                   System.out.print(array[i]+":"+test.getLevel(array[i])+",\t");
  21.           }
  22. }
  23.         //1.从键盘上录入数据,存到数组中。
  24.     public Integer[] getArray() {
  25.    
  26.         System.out.println("请输入整数,输入over时输入结束");
  27.                 //获取键盘录入对象,InputStreamReader,将字节流对象转成字符流对象
  28.         //BufferedReader,为了提高效率,将字符串进行缓冲区技术高效操作
  29.                 BufferedReader bufr =
  30.                                 new BufferedReader(new InputStreamReader(System.in));
  31.                 String line = null;
  32.                 //定义一个集合,装输入的数据,因为输入数据多少不确定,所以用集合装
  33.         ArrayList<Integer> list=new ArrayList<Integer>();
  34.                 try {
  35.                         //一行的读入数据
  36.                         while((line=bufr.readLine())!=null)
  37.                         {   int num=0;
  38.                          //判断输入是否为over,是则结束
  39.                                 if("over".equals(line))  
  40.                                 { System.out.println("输入结束");
  41.                                         break;
  42.                                 }
  43.                                 //当输入不是整数,进行异常处理
  44.                                 try {
  45.                                          num= Integer.parseInt(line);
  46.                                 } catch (Exception e) {
  47.                                         System.out.println("您没有输入整数,请重新输入");
  48.                                  continue;        //这次输入数据不加人集合中       
  49.                                                 }
  50.                                   
  51.                    list.add(num );
  52.                         }
  53.                         //处理输入异常
  54.                 } catch (IOException e) {
  55.                        
  56.                         e.printStackTrace();
  57.                 }finally{
  58.                         //关闭流操作
  59.                         if(bufr!=null){
  60.                                
  61.                                 try {
  62.                                         bufr.close();
  63.                                 } catch (IOException e) {
  64.                                        
  65.                                         e.printStackTrace();
  66.                                 }
  67.                         }
  68.                        
  69.                 }
  70.                 //把得到的集合转换为组
  71.                 Integer[] array= (Integer[]) list.toArray(new Integer[list.size()]);
  72.                 return array;
  73.                                
  74.         }
  75.     //判断成绩的等级
  76.     public String getLevel(int  grade){
  77.             String  level=null;
  78.             //先除以10就变成了1-10的数据了
  79.          int num=grade/10;
  80.          if(num>=9&&num<=10){
  81.                  level="优";
  82.          }
  83.                        
  84.          else if(num==8){
  85.                  level="良";
  86.          }
  87.          else if(num==7)
  88.          {
  89.                  level="中";
  90.          }
  91.          else if(num==6)
  92.          {
  93.                  level="及格";
  94.          }
  95.          else if(0<=num&&num<6)
  96.          {
  97.                  level="不及格";
  98.          }
  99.          else{
  100.                  level= "请输入1-100的数据";
  101.          }
  102.             return level;
  103.        }
  104. }
复制代码
第二题
  1. package heima.test;

  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. /*第二题
  6. 从控制台字符串,将输入的字符串中的小写字母转换成大写字母,大写字母转换成小写字母,数字转换成#符号。

  7. 要求:
  8.    1.输入的必须只能包含数字和字母。
  9.    2.输出的要求要清晰明了。
  10.         例如:abd12AN45Ngk
  11.             转换后的是:
  12.               ABD##an##nGK
  13. */

  14. public class Test2 {
  15.         public static void main(String[] args) {
  16.                 Test2 t=new Test2();
  17.                
  18.                 //得到输入的字符串
  19.                 String str=t.getString();
  20.                
  21.                 //改变字符串格式
  22.                 str=t.changeStyle(str);
  23.                
  24.                 System.out.println(str);
  25.                
  26.         }
  27.         public  String changeStyle(String str) {
  28.                  //把字符串转换为数组,在每个字母进行改变
  29.                  char[] ch=str.toCharArray();
  30.                  for(int i=0;i<ch.length;i++){
  31.                            //小写改为大写
  32.                             if(ch[i]>96){
  33.                              ch[i]-=32;
  34.                             }
  35.                             //数字改为#
  36.                             else if(ch[i]>=48&&ch[i]<=58)
  37.                             {
  38.                                     ch[i]='#';
  39.                             }
  40.                             //大写改为小写
  41.                             else
  42.                             {
  43.                              ch[i]+=32;
  44.                             }
  45.                            }
  46.                  //把数组转换为String返回
  47.                 return String.valueOf(ch);
  48.         }
  49.         public String getString() {
  50.                   
  51.                 System.out.println("请输入字符串(只能包含数字和字母)");
  52.                         //获取键盘录入对象,InputStreamReader,将字节流对象转成字符流对象
  53.                 //BufferedReader,为了提高效率,将字符串进行缓冲区技术高效操作
  54.                         BufferedReader bufr =
  55.                                         new BufferedReader(new InputStreamReader(System.in));
  56.                         String line = null;
  57.                         try {
  58.                                 //一行的读入数据
  59.                                 while((line=bufr.readLine())!=null)
  60.                                 {                                  
  61.                                         //用正则判断是不是只包含数字和字母
  62.                                         String regex="[a-zA-Z0-9]+";
  63.                                         if(!line.matches(regex))
  64.                                         {
  65.                                                 System.out.println("只能包含数字和字母,请重新输入");
  66.                                          continue;        //输入错误重新输入       
  67.                                         }                                         
  68.                                                 break;

  69.                            
  70.                                 }
  71.                                 //处理输入异常
  72.                         } catch (IOException e) {
  73.                                
  74.                                 e.printStackTrace();
  75.                         }finally{
  76.                                 //关闭流操作
  77.                                 if(bufr!=null){
  78.                                        
  79.                                         try {
  80.                                                 bufr.close();
  81.                                         } catch (IOException e) {
  82.                                                
  83.                                                 e.printStackTrace();
  84.                                         }
  85.                                 }
  86.                                
  87.                         }
  88.                         //把得到的集合转换为组
  89.                        
  90.                         return line;                                        
  91.                 }
  92. }
复制代码

作者: 小痞痞    时间: 2013-11-13 23:12
  1. import java.util.Scanner;

  2. public class Test1 {
  3.        
  4.         /**
  5.          * 学生成绩分为四个等级:90~100:优,80~89:良,70~79:中,60~69:及格,0~60:不及格。   
  6.                  要求:   
  7.              1.输入一个学生的成绩:例如 99,那么输出优。        
  8.              2.输入成绩必须是整数,范围是0~100,超过范围或者输入的不是整数,要做相应的处理。   
  9.              3.可以连续输入成绩,当输入over的时候,结束输入成绩
  10.          */

  11.         public static void main(String[] args) {
  12.                 Scanner sc = new Scanner(System.in);        //建立键盘输入对象
  13.                 while(true) {
  14.                         System.out.println("请输入你的成绩:");        //提示
  15.                         String line = sc.nextLine();                //将键盘录入的出入line变量中
  16.                         if("over".equals(line)) {                        //当遇到over时
  17.                                 break;                                                        //退出
  18.                         }
  19.                         try {
  20.                                 int temp = Integer.parseInt(line);                        //将得到的字符串转换为Integer对象
  21.                                 method(temp);                                                                //调用method方法
  22.                         } catch (NumberFormatException e) {                                //如果转换出错证明输入的不是整数
  23.                                 System.out.println("你输入的不是整数,请输入整数");  //提示
  24.                         }
  25.                 }
  26.                 sc.close();                //关闭流对象
  27.         }
  28.        
  29.         private static void method(int i) {
  30.                 if(i >= 0 && i <= 100) {                                        //如果输入的数字在0~100之间就执行下列操作
  31.                         switch(i/10) {                                                        //去掉数字的个位数找他十位数对应的值并输出
  32.                         case 6:                //60~69:及格
  33.                                 System.out.println("恭喜你及格了。");
  34.                                 break;
  35.                         case 7:                //70~79:中
  36.                                 System.out.println("恭喜你的成绩为中等。");
  37.                                 break;
  38.                         case 8:                //80~89:良
  39.                                 System.out.println("恭喜你此次的成绩为良");
  40.                         case 9:
  41.                         case 10:        //90~100:优
  42.                                 System.out.println("恭喜你获得了优。");
  43.                                 break;
  44.                         default:        //0~60:不及格
  45.                                 System.out.println("你此次考试不及格");
  46.                                 break;
  47.                         }
  48.                 } else {                //如果输入的数不再0~100之间给以提示
  49.                         System.out.println("请输入正确的成绩:0~100");
  50.                 }
  51.         }

  52. }
复制代码

作者: 星星Fighting    时间: 2013-11-14 00:33
请楼主查看,谢谢!

徐星星.rar

6.73 KB, 下载次数: 33


作者: gh112233    时间: 2013-11-14 00:36
成绩登记代码:

public class Test01 {

        public static void main(String[] args) {
                // TODO Auto-generated method stub
          //给定s1为空字符,便于后面循环赋值;
                        String s1= "";
                        //一个循环。当输入的为over时结束循环,即不能在输入成绩了
                        do{
                                //提示输入成绩
                                System.out.print("请输入成绩:");
                                //实例化scanner对象,用于获取输入的字符串
                                Scanner scanner= new Scanner(System.in);
                                //获取输入的字符串
                                s1= scanner.next();
                                //判断类型是否为int类型
                                try {
                                        int i = Integer.parseInt(s1);
                                        getNum(i);
                                } catch (NumberFormatException e) {
                                        // TODO Auto-generated catch block
                                        //e.printStackTrace();
                                        System.out.println("输入的不是整数!");
                                }
                                
                        }while(!(s1.equals("over")));
        }


        public static void getNum(int i){
                //判断i的大小是否超出范围
                if(i>=0&&i<=100){
                        //判断成绩等级
                        if(i<=100&&i>=90){
                                System.out.println("优");
                        }else if(i>=80&&i<=89){
                                System.out.println("良");
                        }else if(i>=70&&i<=79){
                                System.out.println("中");
                        }else if(i>=60&&i<=69){
                                System.out.println("及格");
                        }else{
                                System.out.println("不及格");
                        }
                        
                }else{
                        System.out.println("成绩超出范围!");
                }
        }
}



字符串代码:
public class Test02 {

        public static void main(String[] args) {
                // TODO Auto-generated method stub

                System.out.print("请输入字符串:");
                Scanner scanner= new Scanner(System.in);
                String s=scanner.next();
                //System.out.println(s.length());
                //定义 一个int类型的参数来获取字符串每个元素的char值的ASCII码值
                int changetemp;
                //定义一个char类型的参数用来设定获取每个字母将其转换后的字母
                char changechar;
                for (int i = 0; i <s.length(); i++) {
                        char tochar=s.substring(i, i+1).charAt(0);
                        //定义tochartemp来获取每个字母的ASCII值
                        int tochartemp=tochar;
                        if(tochartemp>=48&&tochartemp<=57){
                                System.out.print("#");
                        }else if(tochartemp<=96&&tochartemp>=65){
                                //将获取的字母转换成小写字母
                                 changetemp=tochar+32;
                                 //转换成char类型用于输出
                             changechar=(char)changetemp;
                            // System.out.print(changetemp);
                                System.out.print(changechar);
                        }else{
                                //将获取的字母转换成大写字母
                                 changetemp=tochar-32;
                                //转换成char类型用于输出
                             changechar=(char)changetemp;
                            // System.out.print(changetemp);
                                System.out.print(changechar);
                        }
                }
               
        }

}



作者: 张鹏    时间: 2013-11-14 01:46
成绩等级与字符串解答

张鹏.zip

1.44 KB, 阅读权限: 100, 下载次数: 4


作者: 星星Fighting    时间: 2013-11-14 14:37
供版主查看

徐星星.rar

6.73 KB, 阅读权限: 100, 下载次数: 1

只供版主查看


作者: 轩辕迪卡    时间: 2013-11-14 14:56
刘朋鑫提交作业

刘朋鑫.zip

9.57 KB, 阅读权限: 100, 下载次数: 1


作者: linjl_ll    时间: 2013-11-14 15:30
仅使用一种方法实现的

linjl_ll.zip

2.29 KB, 阅读权限: 255, 下载次数: 2


作者: qq316525598    时间: 2013-11-14 20:31
希望满意

师寒清.zip

8.76 KB, 阅读权限: 100, 下载次数: 1


作者: qq316525598    时间: 2013-11-14 20:34
努力解决

师寒清.zip

8.76 KB, 阅读权限: 100, 下载次数: 4


作者: 秦桂胜    时间: 2013-11-14 21:08
  1. import java.io.*;


  2. public class Test1 {

  3.      /**从控制台字符串,将输入的字符串中的小写字母转换成大写字母,大写字母转换成小写字母,数字转换成#符号。
  4.      *            要求:
  5.      *       1.输入的必须只能包含数字和字母。
  6.      *       2.输出的要求要清晰明了。
  7.      *              例如:abd12AN45Ngk
  8.      *                     转换后的是:
  9.      *                    ABD##an##nGK
  10.      *               
  11.      *      思路:
  12.      *              1、用System,in设定控制台输入
  13.      *              2、创建一方法实现小写变大写,大写变小写,数字变#,(用正则表达式)               
  14.      */
  15.         public static void main(String[] args) {
  16.                
  17.                 BufferedReader bur=new BufferedReader(new InputStreamReader(System.in));
  18.                 while (true){
  19.                         System.out.print("请输入只能包含数字和字母的字符串:");
  20.                         String s;
  21.                         try {
  22.                                 s = bur.readLine();
  23.                                 getString(s);
  24.                         } catch (IOException e) {
  25.                                 // TODO Auto-generated catch block
  26.                                 e.printStackTrace();
  27.                         }
  28.                        
  29.                 }
  30.         }
  31.         private static void getString(String s) {
  32.                 char[] arr = s.toCharArray();
  33.                 StringBuffer sb = new StringBuffer();
  34.                 for (char c : arr) {
  35.                         if (c >= '0' && c <= '9') {
  36.                                 sb.append("#");
  37.                         } else if (c >= 'a' && c <= 'z') {
  38.                                 sb.append(String.valueOf(c).toUpperCase());
  39.                         } else if (c >= 'A' && c <= 'Z') {
  40.                                 sb.append(String.valueOf(c).toLowerCase());
  41.                         }
  42.                 }
  43.                 System.out.println(sb.toString());
  44.         }
  45.        

  46. }
复制代码
  1. import java.io.*;


  2. public class Test1 {

  3.      /**从控制台字符串,将输入的字符串中的小写字母转换成大写字母,大写字母转换成小写字母,数字转换成#符号。
  4.      *            要求:
  5.      *       1.输入的必须只能包含数字和字母。
  6.      *       2.输出的要求要清晰明了。
  7.      *              例如:abd12AN45Ngk
  8.      *                     转换后的是:
  9.      *                    ABD##an##nGK
  10.      *               
  11.      *      思路:
  12.      *              1、用System,in设定控制台输入
  13.      *              2、创建一方法实现小写变大写,大写变小写,数字变#,(用正则表达式)               
  14.      */
  15.         public static void main(String[] args) {
  16.                
  17.                 BufferedReader bur=new BufferedReader(new InputStreamReader(System.in));
  18.                 while (true){
  19.                         System.out.print("请输入只能包含数字和字母的字符串:");
  20.                         String s;
  21.                         try {
  22.                                 s = bur.readLine();
  23.                                 getString(s);
  24.                         } catch (IOException e) {
  25.                                 // TODO Auto-generated catch block
  26.                                 e.printStackTrace();
  27.                         }
  28.                        
  29.                 }
  30.         }
  31.         private static void getString(String s) {
  32.                 char[] arr = s.toCharArray();
  33.                 StringBuffer sb = new StringBuffer();
  34.                 for (char c : arr) {
  35.                         if (c >= '0' && c <= '9') {
  36.                                 sb.append("#");
  37.                         } else if (c >= 'a' && c <= 'z') {
  38.                                 sb.append(String.valueOf(c).toUpperCase());
  39.                         } else if (c >= 'A' && c <= 'Z') {
  40.                                 sb.append(String.valueOf(c).toLowerCase());
  41.                         }
  42.                 }
  43.                 System.out.println(sb.toString());
  44.         }
  45.        

  46. }
复制代码

作者: 向阳泪无痕    时间: 2013-11-15 11:24
因为大四正在实习原因,空余时间不多,利用下班的一会时间先把第一题做好了  。。。。明天有时间再把每二题做好交上。。。望谅解。
  1. /*
  2. 第一题
  3.      学生成绩分为四个等级:90~100:优,80~89:良,70~79:中,60~69:及格,0~60:不及格。   

  4.      要求:   
  5.         1.输入一个学生的成绩:例如 99,那么输出优。        
  6.         2.输入成绩必须是整数,范围是0~100,超过范围或者输入的不是整数,要做相应的处理。   
  7.         3.可以连续输入成绩,当输入over的时候,结束输入成绩
  8. */

  9. import java.io.*;
  10. class ScoreText
  11. {
  12.         public static void main(String[] args)
  13.         {
  14.                 text();       
  15.         }
  16.         public static void text()
  17.         {
  18.                 String s = null;  
  19.                 int score;
  20.                 BufferedReader bufr = null;
  21.                 try
  22.                 {
  23.                         while (true)
  24.                         {
  25.                                 bufr = new BufferedReader(new InputStreamReader(System.in)); //键盘录入
  26.                        
  27.                                 s = bufr.readLine();  //读取键盘录入的值

  28.                                 if("over".equals(s))
  29.                                         return;

  30.                                 score = Integer.parseInt(s); //如果是非数字字符串,则会抛异常
  31.                                        
  32.                                 if(score<0 || score>100)
  33.                                         System.out.println("请输入0-100之间的分数");

  34.                                 if(score<=100 && score>=90)
  35.                                         System.out.println("....优");
  36.                                 else if(score<90 && score>=80)
  37.                                         System.out.println("....良");
  38.                                 else if(score<80 && score>=70)
  39.                                         System.out.println("....中");
  40.                                 else if(score<70 && score>=60)
  41.                                         System.out.println("....及格");
  42.                                 else if(score<60 && score>=0)
  43.                                         System.out.println("....不及格");
  44.                                                
  45.                         }
  46.                 }
  47.                 catch (Exception e)
  48.                 {
  49.                         if(s == null) //如果强制退出,就不提示
  50.                                 return;
  51.                         System.out.println("请输入整数");       
  52.                         text(); //抛异常后,提示,并可继续录入分数
  53.                 }
  54.                 finally
  55.                 {
  56.                         try
  57.                         {
  58.                                 if(bufr!=null)
  59.                                         bufr.close();
  60.                         }
  61.                         catch (IOException e)
  62.                         {
  63.                                 System.out.println("关闭异常");
  64.                         }
  65.                 }
  66.                        
  67.         }
  68. }
复制代码

作者: 星星Fighting    时间: 2013-11-15 16:59
星星Fighting 发表于 2013-11-14 14:37
供版主查看

恩恩,我会加油的!嘿嘿
作者: jttsai    时间: 2013-11-15 19:22
1,2两题已经做好,请查收!共勉之~

蒋涛涛.rar

5.51 KB, 下载次数: 61


作者: 终结者    时间: 2013-11-15 23:31
不知道这样打成压缩包对不对,不对的话说一声啊

终结者.zip

6.97 KB, 下载次数: 45


作者: 向阳泪无痕    时间: 2013-11-16 09:30
不好意思,第二题现在交上。。。望版主看看。
  1. /*
  2. 第二题
  3.       从控制台字符串,将输入的字符串中的小写字母转换成大写字母,大写字母转换成小写字母,数字转换成#符号。
  4.       要求:
  5.           1.输入的必须只能包含数字和字母。
  6.           2.输出的要求要清晰明了。

  7. 例如:abd12AN45Ngk  
  8. 转换后的是:  ABD##an##nGK


  9. 思路:
  10.         1,用IO流读出键盘录入的数据
  11.         2,把读到的字符串数据采用for循环取出每一个字符,并把每一个字符作出相应的转换
  12.         3,把转换后的字符依次加入缓冲池中
  13.         4,从缓冲池中输出转换结果
  14.         5,清空缓冲池(因为要多次使用,所以用完一次清空一次)
  15.         6,关闭流资源

  16. */
  17. import java.io.*;
  18. class StringText
  19. {
  20.         public static void main(String[] args) throws IOException
  21.         {
  22.                 text();
  23.         }
  24.         public static void text()
  25.         {
  26.                
  27.                 String s = null;  //用来保存IO流从控制台读到的数据
  28.                 BufferedReader bufr = null;  //加强读取效率
  29.                 StringBuffer sbuf = new StringBuffer(); //缓冲池,用来存转换后的字符
  30.                 try
  31.                 {
  32.                         while (true)
  33.                         {
  34.                                 //1,从控制台读取数据
  35.                                 bufr = new BufferedReader(new InputStreamReader(System.in)); //键盘录入
  36.                        
  37.                                 s = bufr.readLine();  //读取键盘录入的值,如读取失败则抛异常
  38.                                
  39.                                 if("over".equals(s) || "OVER".equals(s))  //输入over 程序结束
  40.                                         return;

  41.                                 //2,把读取到的字符串作相应的转换
  42.                                 for(int i=0;i<s.length();i++)
  43.                                 {
  44.                                         char chr = s.charAt(i);
  45.                                         if(chr>='a' && chr<='z')   //小写转大写
  46.                                                 chr -= 32;   
  47.                                         else if(chr>='A' && chr<='Z')  //大写转小写
  48.                                                 chr += 32;
  49.                                         else if(chr>='0' && chr<='9')  //数字转为#
  50.                                                 chr = '#';
  51.                                         else
  52.                                         {
  53.                                                 System.out.println("只能输入字母或数字!!!");
  54.                                                 sbuf.delete(0,sbuf.length()); //转换失败,清空缓冲区。
  55.                                                 break;
  56.                                         }
  57.                                        
  58.                                         //3,转换后存入到缓冲池中
  59.                                         sbuf.append(chr);  
  60.                                 }
  61.                
  62.                                 //4,如果缓冲区有数据,输出转换后的结果
  63.                                 if(sbuf.length()!=0)
  64.                                 {
  65.                                         System.out.println(sbuf.toString());

  66.                                         //5,清空缓冲区
  67.                                         sbuf.delete(0,sbuf.length()); //每转换一次结束后,清空缓冲池。
  68.                                 }                                                       
  69.                         }
  70.                 }
  71.                 catch (Exception e) //处理读取数据失败
  72.                 {
  73.                         System.out.println("读取数据失败");
  74.                 }
  75.                 finally
  76.                 {
  77.                         //6,关闭流资源
  78.                         try
  79.                         {
  80.                                 if(bufr!=null) //如果流成功创建才能正常关闭
  81.                                         bufr.close();
  82.                         }
  83.                         catch (IOException e)
  84.                         {
  85.                                 System.out.println("流关闭异常");
  86.                         }
  87.                 }                       
  88.         }
  89. }

复制代码

作者: 雪龙    时间: 2013-11-16 12:16
答题活动我来了

王林红.zip

5.18 KB, 下载次数: 183

答题活动


作者: 马明杨    时间: 2013-11-16 12:41
你好,这2提我都做了,都在同一个包下,
马明杨.rar (5.15 KB, 下载次数: 210)


作者: aspoMAN    时间: 2013-11-16 13:25
  1. /*       
  2.         1.输入一个学生的成绩:例如 99,那么输出优。        
  3.     2.输入成绩必须是整数,范围是0~100,超过范围或者输入的不是整数,要做相应的处理。   
  4.     3.可以连续输入成绩,当输入over的时候,结束输入成绩
  5. */

  6. import java.io.BufferedReader;
  7. import java.io.IOException;
  8. import java.io.InputStreamReader;

  9. public class ScoreProcess {

  10.         public static void main (String[] args) {
  11.                 System.out.println("请输入0-100的整数...");
  12.                 while(true){
  13.                         BufferedReader bfr  = new BufferedReader(new InputStreamReader(System.in));
  14.                         int scoreValue = 0;
  15.                         String value = "";
  16.                         try {
  17.                                 value = bfr.readLine();
  18.                                 //"over"结束
  19.                                 if(value.equals("over")) {
  20.                                         System.out.println("退出!!!");
  21.                                         return;
  22.                                 } else if(value == null || value.equals("")) {
  23.                                         System.out.println("空值,请重新输入");
  24.                                 }
  25.                                 scoreValue = Integer.parseInt(value);
  26.                                 //处理成绩打印不同的级别
  27.                                 processScore(scoreValue);
  28.                         } catch (NumberFormatException e) {
  29.                                 System.out.println("格式不正确,numberFormat");
  30.                         } catch (IOException e) {
  31.                                 System.out.println("格式不正确,io");
  32.                         }
  33.                 }
  34.         }
  35.        
  36.         //处理成绩的方法
  37.         //按照不同的成绩打印相应的级别
  38.         public static void processScore(int score) {
  39.                 if(score <= 100 && score >= 0) {
  40.                         if (score < 60) {
  41.                                 System.out.println("不及格");
  42.                         } else if (score < 70) {
  43.                                 System.out.println("及格");
  44.                         } else if (score < 80) {
  45.                                 System.out.println("中");
  46.                         } else if (score < 90) {
  47.                                 System.out.println("良");
  48.                         } else {
  49.                                 System.out.println("优");
  50.                         }
  51.                 } else {
  52.                         System.out.println("成绩超过界限,请重新输入");
  53.                 }
  54.         }
  55. }



  56. import java.io.*;

  57. /*
  58. *  二。
  59. *  从控制台字符串,将输入的字符串中的小写字母转换成大写字母,大写字母转换成小写字母,数字转换成#符号。
  60. *  1.输入的必须只能包含数字和字母。
  61. *  2.输出的要求要清晰明了。
  62. *  
  63. *  思路:使用Character的方法进行判断
  64. *  思路2:使用对应的ASC码进行判断,并进行相应转换(未实现)
  65. *  
  66. *  65-90:A-Z
  67. *  97-122:a-z
  68. *  48-57:0-9
  69. */

  70. public class StringChangeTest {

  71.         public static void main(String[] args) {
  72.                 System.out.println("输入字母或数字,进行转换...");
  73.                 while(true) {
  74.                         BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));
  75.                         try {
  76.                                 String value = bfr.readLine();
  77.                                 System.out.println(StringChange(value));
  78.                         } catch (IOException e) {
  79.                                 // TODO Auto-generated catch block
  80.                                 //e.printStackTrace();
  81.                         }
  82.                 }
  83.         }
  84.        
  85.         //对字符进行转换
  86.         public static String StringChange(String s) {  
  87.         if(s.equals("") || s == null) {
  88.             return "";  
  89.         } else if(s.equals("over")) {
  90.                 System.out.println("退出");
  91.                 System.exit(0);
  92.         }
  93.         //存储数据的容器
  94.         StringBuilder sb=new StringBuilder(s);  
  95.         String temp = null;  
  96.         for (int i = 0; i < s.length(); i++) {
  97.                 if(Character.isLowerCase(sb.charAt(i))) {  //判断是否是小写字母
  98.                 temp=s.substring(i, i+1).toUpperCase();//转换
  99.                 sb.replace(i, i+1, temp);                       //替换后存储(下同)
  100.             } else if(Character.isUpperCase(sb.charAt(i))) {   //判断是否是大写字母
  101.                 temp=s.substring(i, i+1).toLowerCase();  
  102.                 sb.replace(i, i+1, temp);  
  103.             } else if (Character.isDigit(sb.charAt(i))) {         //判断是否是数字
  104.                     sb.replace(i, i+1, "#");
  105.             } else {
  106.                     System.out.println("位置"+i+"无法处理的类型" + " '" + s.substring(i, i+1) + "'");
  107.             }
  108.         }
  109.         return sb.toString();  
  110.     }
  111. }
复制代码

作者: 烟花雨    时间: 2013-11-16 16:43
是否符合???

刘树军.zip

7.19 KB, 阅读权限: 100, 下载次数: 1


作者: 烟花雨    时间: 2013-11-16 16:50
上一个好像发失败了,重发一次

刘树军.zip

7.19 KB, 阅读权限: 100, 下载次数: 0


作者: joure    时间: 2013-11-16 19:58
第一题 思路:
首先判断输入的数据类型,如果为int型则正常输出结果,
如果为字符串,为"over"时退出程序,否则抛出错误
输出等级的判断可以用if语句,也可用switch语句,但是switch语句对于0~60区间的判断比较繁琐,所以使用if语句
我现在还挣扎在多线程,没学到io流这部分内容,第三个功能做的可能不完整,数据类型不知道怎么判断

java.util.Scanner;
public class TestChengji {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入成绩");
                if (//判断数据类型为int)
                {               
                        int x = sc.nextInt();

                        if(x<0||x>100)
                                System.out.println("非法数值,请重新输入!");
                        else if(x>90&x<=100)
                                System.out.println("优秀");
                        else if(x>=80&x<90)
                                System.out.println("良好");
                        else if(x>=70&x<80)
                                System.out.println("中等");
                        else if(x>=60&x<70)sxxx
                                System.out.println("及格");
                        else
                                System.out.println("不及格");
                        continue;
                }               
                if (//判断数据类型为over)
                {
                        System.exit;//结束输入
                }
        }
}

第二题还是还要用到io流,写不出来,简单说一下思路吧:
限制输入的数据类型只能为数字和字母,否则抛出错误
逐个遍历字符串中的字符并判断数据类型,
如果是字母,参考ASCII表小写字母-32后输出,大写字母+32输出结果
如果是数字,输出#

总结:感觉自己不会的东西太多了,我要集中一切时间和精力追赶进度,争取早日进入黑马学习
作者: aspoMAN    时间: 2013-11-17 14:08
已经答题,没得满分,给个做的好的参考下吧
作者: 蜀仙    时间: 2013-11-17 15:54
提交晚了, 今天才看见这个帖子

刘建国.zip

2.16 KB, 阅读权限: 100, 下载次数: 1


作者: 问天    时间: 2013-11-17 16:08
已提交。。。。。。。。。。。

周学君.zip

1.8 KB, 阅读权限: 100, 下载次数: 1


作者: 马明杨    时间: 2013-11-17 16:18
马明杨 发表于 2013-11-16 12:41
你好,这2提我都做了,都在同一个包下,

谢谢你,好人
作者: 蜀仙    时间: 2013-11-17 16:39
谢谢版主
作者: 向阳泪无痕    时间: 2013-11-18 02:40
向阳泪无痕 发表于 2013-11-16 09:30
不好意思,第二题现在交上。。。望版主看看。

恩……好的,不过我写的在不按要求输入时,break   for循环结束。但while循环并没有结束啊!还可以继续输入的。嘿嘿……继续加油,早点进黑马。
作者: 问天    时间: 2013-11-19 16:32
楼主53楼的是不是忘记看了
作者: 杨增坤    时间: 2013-11-19 20:01
问天 发表于 2013-11-19 16:32
楼主53楼的是不是忘记看了

怎么查不到,你重新提交吧!
作者: 杨增坤    时间: 2013-11-19 20:02
问天 发表于 2013-11-19 16:32
楼主53楼的是不是忘记看了

是你提交的吗,有一个人是提交的两份,我判了一份,一个是重复的!
作者: 问天    时间: 2013-11-19 22:29
杨增坤 发表于 2013-11-19 20:01
怎么查不到,你重新提交吧!

恩   好的
作者: 问天    时间: 2013-11-19 22:32
53楼 重新提交的  谢谢楼主

周学君.zip

1.8 KB, 阅读权限: 100, 下载次数: 1


作者: 问天    时间: 2013-11-19 22:35
杨增坤 发表于 2013-11-19 20:02
是你提交的吗,有一个人是提交的两份,我判了一份,一个是重复的!

我之前好像木有重复提交啊,耽误楼主时间了
作者: 问天    时间: 2013-11-20 15:16
问天 发表于 2013-11-19 22:32
53楼 重新提交的  谢谢楼主

好的  谢谢楼主




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2