`
feargod
  • 浏览: 45120 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

华为2013机试题

阅读更多

华为2013年在长沙的一个机试题是判断润年。年份要求是四位数。

输入样例:

2012

2122

afdsfa

22.33

输出样例:

YES

NO

ERROR

 

我的答案是:

 

package cn.william;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

/**
 * 华为2013年机试题:求润年
 * @author william
 *
 */
public class Test extends JFrame{
	private JLabel lable;
	private JTextField field;
	
	public static void main(String[] args){
		Test frame = new Test();
		frame.init();
	}
	
	public void init(){
		this.setSize(400, 250);
		this.setLayout(null);
		lable = new JLabel("请输入年份:");
		field = new JTextField();
		lable.setBounds(140, 90, 120, 30);
		field.setBounds(140, 120,120, 30);
		this.add(field);
		this.add(lable);
		this.setVisible(true);
		
		field.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				String year = field.getText().toString();
				if(year.length() != 4){
					System.out.println("ERROR");
					return;
				}
				int y = 0;
				
				try{
					y = Integer.parseInt(year);
				}catch(Exception ex){
					System.out.println("ERROR");
					return;
				}
				
				
				check(y);
			}
		});
	}
	
	private void check(int year){
		
		if(year == 0){
			System.out.println("ERROR");
			return;
		}
		
		if(year % 100 == 0){
			if(year % 400 == 0){
				System.out.println("YES");
			}else{
				System.out.println("NO");
			}
		}else{
			if(year % 4 == 0){
				System.out.println("YES");
			}else{
				System.out.println("NO");
			}
		}
	}

}

 

 

顺便复习一下java异常的知识。

异常定义:能让程序意外中断运行的指令流。

java异常类的结构如下

Throwable包括了一切的异常。ERROR是JVM的异常,不可以用我们的代码处理。Exception是我们程序中可能出现的异常,可以处理。

RuntimeException和Exception的关系:

RuntimeException继承自Exception,RuntimeException和它的子类可以不用try catch进行处理。

 

ry{
	y = Integer.parseInt(year);
}catch(Exception ex){
	System.out.println("ERROR");
	return;
}

 

其实这里 Integer.parseInt(year) 可能会抛出NumberFormatException的,但是eclipse并没有提示这句代码需要处理异常,因为NumberFormatException是RuntimeException的子类。

当然因为RuntimeException是Exception的子类,所以,也可以用try catch来处理。

分享到:
评论

相关推荐

    华为2013年机试题

    下面将逐一解析“华为2013年机试题”中的三道题目,旨在理解和掌握其背后的逻辑与技术要点。 ### 题目一:字符串反转 题目要求实现一个函数`StringReverse`,该函数接收两个字符指针参数,`input`和`output`,并...

    华为机试题2013第二次

    【华为机试题2013第二次】是一场针对应聘者的技术测试,主要考察候选人的编程能力和计算机科学基础知识,尤其侧重于C++语言的应用。作为一项重要的面试环节,华为的机试题通常涵盖数据结构、算法、操作系统、网络...

    2013年华为校园招聘机试题及个人答案

    2013年华为校园招聘机试题及个人答案 2013年华为校园招聘机试题及个人答案

    华为机试题库

    ### 华为机试题库分析 #### 题目一:电话号码验证 这段代码的主要功能是验证输入的电话号码是否符合特定格式。具体来说,它检查电话号码是否以“86”开头,并且总长度为13位,其中除了开头的“86”,其余部分都是...

    华为2013.9.22上机试题

    【华为2013.9.22上机试题】主要涵盖的知识点是字符串处理、字符统计、位操作以及二进制表示。以下是对这些知识点的详细解释: 1. **字符串处理**:在C语言中,字符串是字符数组,通常以空字符'\0'作为结束标志。...

    华为机试题

    此题目是华为在2011年至2013年期间的一道机试题,主要考察的是C++编程中的字符串处理和条件判断能力。题目要求编写一个函数`verifyMsisdn`来判断输入的手机号码字符串是否符合中国大陆手机号码的规范。 1. **手机...

    华为机试 java

    华为的机试题以及答案 2013 供大家分享

    上机试题及答案

    华为上机考试题目及答案(答案是自己写的不一定准确),C/C++试题,题目是2013年2月到2013年6月共23道题目,另还有网上搜的几个题目。

Global site tag (gtag.js) - Google Analytics