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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wu971856966 中级黑马   /  2016-11-10 16:18  /  2247 人查看  /  14 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

输入星期英文的首字母 返回星期几   如果首字母一样输入第二个字母   我翘的这个代码好长  有没有短点的
package com.kaoshi.moni;

import java.util.Scanner;

public class Ti1 {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // 键盘录入
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个字母:");
                // 输入字母大小写转换
                String s = sc.nextLine();
                String st = s.toUpperCase();
                // 判断输入长度
                if (st.length() == 1) {
                        // 判断是否符合条件
                        if ("M".equals(st)) {
                                System.out.println("星期一");
                        } else if ("T".equals(st)) {
                                // 由于T有两种结果,所以判断其他条件
                                System.out.println("请输入第二个字母:");
                                String s1 = sc.nextLine();
                                String st1 = s1.toLowerCase();
                                if (st1.length() == 1) {
                                        if ("u".equals(st1)) {
                                                System.out.println("星期二");
                                        } else if ("h".equals(st1)) {
                                                System.out.println("星期四");
                                        } else {
                                                System.out.println("输入有误");
                                        }
                                } else {
                                        System.out.println("输入有误");
                                }

                        } else if ("W".equals(st)) {
                                System.out.println("星期三");
                        } else if ("F".equals(st)) {
                                System.out.println("星期五");
                        } else if ("S".equals(st)) {
                                // 由于S有两种结果,所以判断其他条件
                                System.out.println("请输入第二个字母:");
                                String s2 = sc.nextLine();
                                String st2 = s2.toLowerCase();
                                if (st2.length() == 1) {
                                        if ("a".equals(st2)) {
                                                System.out.println("星期六");
                                        } else if ("u".equals(st2)) {
                                                System.out.println("星期天");
                                        } else {
                                                System.out.println("输入有误");
                                        }
                                } else {
                                        System.out.println("输入有误");
                                }
                        } else {
                                System.out.println("输入有误!");
                        }
                } else {
                        System.out.println("输入有误!");
                }
        }

}


14 个回复

倒序浏览
Lamb 来自手机 中级黑马 2016-11-10 16:51:51
沙发
class Test1 {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("输入一个代表星期的字母");
                String str = sc.nextLine();
                show(str);
        }
        public static void show(String s) {
                switch(s) {
                case "Mon":
                        System.out.println("星期一");
                        break;
                case "Tues":
                        System.out.println("星期二");
                        break;
                case "Wed":
                        System.out.println("星期三");
                        break;
                case "Thur":
                        System.out.println("星期四");
                        break;
                case "Fri":
                        System.out.println("星期五");
                        break;
                case "Sat":
                        System.out.println("星期六");
                        break;
                case "Sun":
                        System.out.println("星期日");
                        break;
                default:
                        System.out.println("输入的星期不存在.");
                }
        }
}
数组也行,很多。
回复 使用道具 举报
LHN 中级黑马 2016-11-10 20:27:24
藤椅
回复 使用道具 举报
代码还可以优化简略一下
回复 使用道具 举报
你只需要在相同字母的情况下加判断就行吧。。。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
下面是我的代码,我觉得,更简化了一点儿

[AppleScript] 纯文本查看 复制代码
import java.util.Scanner;

public class test {
	public static void main(String[] args) {
		// 创建键盘录入
		System.out.println("输入一个代表星期的字母");
		String s = new Scanner(System.in).nextLine();

		// 创建两个字符数组
		String[] str1 = { "Mon", "Tues", "Wed", "Thur", "Fri", "Sat", "Sun" };
		String[] str2 = { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日" };

		String result = null;

		// 遍历数组,找出对应的
		for (int x = 0; x < str1.length; x++) {
			if (s.equalsIgnoreCase(str1[x])) {
				result = str2[x];
			}
		}

		if (result != null) {
			System.out.println(result);
		} else {
			System.out.println("输入的星期不存在");
		}
	}

}
回复 使用道具 举报
你这代码,看着都累啊。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
确实看这类
回复 使用道具 举报
NewWind 中级黑马 2016-11-13 11:20:50
9#
复用性差
回复 使用道具 举报
我觉得按照题目要求应该是这么写的:

[Java] 纯文本查看 复制代码
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;

public class Test {
	static  Scanner sc = new Scanner(System.in) ;
    public static void main(String[] args) {
	    String[] arry_week = new String[]{"Mon", "Tues", "Wed", "Thur", "Fri", "Sat", "Sun" };
	    String[] arry_day = new String[]{"星期一","星期二","星期三","星期四","星期五","星期六","星期日"} ; 
	    String temp = sc.nextLine() ;
	    //存储符合条件的英文星期
	    ArrayList<String> list_day = new ArrayList<>() ;
	    //存储符合条件的英文星期的索引
	    ArrayList<Integer> index = new ArrayList<>() ;
	    //遍历英文星期数组
	    for(int i = 0; i<arry_week.length ;i++){
	    	//提取每一个元素的第一个字符
	    	char a = arry_week[i].charAt(0) ;
	    	//判断是否与输入的字母相符合。不区分大小写
	    	if( temp.equalsIgnoreCase(a+"")){
	    		//把相等的英文星期和索引放入到相应的list中
	    	 list_day.add(arry_week[i]);
	    	 index.add(i);
	    	}	    	
	    }
	    
	    //如果是这个英文日期的list的size为1,说明这一个天是唯一的,输出结果。对应的数组索引就是index集合中存储的符合条件的索引
	    if(list_day.size() == 1){
	    	System.out.println("这一天是"+arry_day[index.get(0)] );
	    }else{
	    	//如果不唯一,继续输入下一个数字
	    	System.out.println("输入下一个数字");
	    	String temp2 = sc.nextLine();
	    	//遍历ArrayList,判断集合中元素的第二个字符是否与输入的字符相符合
	    	for(int j = 0 ; j< list_day.size() ; j++){
	    	    char b =   list_day.get(j).charAt(1) ;
	    	    //输出符合条件的星期,结束程序
	    	    if(temp2.equalsIgnoreCase(b+"")){
	    	    	System.out.println("这一天是"+arry_day[index.get(j)]);
	    	    	return ;
	    	    }else{
	    	        //否则跳过这一次循环,继续下一次
	    	        continue ;	    	         
	    	    }
	    	
	    	}
	    	//没有符合条件的输入,提示错误,结束程序。
	    	 System.out.println("输入错误"); 
	    
	    	
	    }
	}
}
回复 使用道具 举报
回复 使用道具 举报
太繁琐了,可以更简洁点
回复 使用道具 举报
太繁琐了,可以更简洁点
回复 使用道具 举报
这代码有点长啊看不下去了加油啊
回复 使用道具 举报
package com.heima;

import java.util.Scanner;

public class Test1_Week {
        public static void main(String[] args) {
                        Scanner sc = new Scanner(System.in);
                        System.out.println("请输入");
                        String s1 = sc.nextLine();
                       
                       
                        if (s1.equalsIgnoreCase("m")) {
                                System.out.println("星期一");
                        }else if (s1.equalsIgnoreCase("w")) {
                                System.out.println("星期三");
                        } else if (s1.equalsIgnoreCase("f")) {
                                System.out.println("星期五");
                        } else if(s1.equalsIgnoreCase("t")){
                                Scanner sc2 = new Scanner(System.in);
                                System.out.println("请输入第二个字母");
                                String s2 = sc2.nextLine();
                                        if (s2.equalsIgnoreCase("u")) {
                                                System.out.println("星期二");
                                        } else if(s2.equalsIgnoreCase("h")){
                                                System.out.println("星期四");
                                        }
                        }else if(s1.equalsIgnoreCase("s")){
                                Scanner sc2 = new Scanner(System.in);
                                System.out.println("请输入第二个字母");
                                String s2 = sc2.nextLine();
                                if (s2.equalsIgnoreCase("a")) {
                                        System.out.println("星期六");
                                } else if(s2.equalsIgnoreCase("u")){
                                        System.out.println("星期天");
                                }
                        }
        }

}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马