华为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年机试题”中的三道题目,旨在理解和掌握其背后的逻辑与技术要点。 ### 题目一:字符串反转 题目要求实现一个函数`StringReverse`,该函数接收两个字符指针参数,`input`和`output`,并...
【华为机试题2013第二次】是一场针对应聘者的技术测试,主要考察候选人的编程能力和计算机科学基础知识,尤其侧重于C++语言的应用。作为一项重要的面试环节,华为的机试题通常涵盖数据结构、算法、操作系统、网络...
2013年华为校园招聘机试题及个人答案 2013年华为校园招聘机试题及个人答案
### 华为机试题库分析 #### 题目一:电话号码验证 这段代码的主要功能是验证输入的电话号码是否符合特定格式。具体来说,它检查电话号码是否以“86”开头,并且总长度为13位,其中除了开头的“86”,其余部分都是...
【华为2013.9.22上机试题】主要涵盖的知识点是字符串处理、字符统计、位操作以及二进制表示。以下是对这些知识点的详细解释: 1. **字符串处理**:在C语言中,字符串是字符数组,通常以空字符'\0'作为结束标志。...
此题目是华为在2011年至2013年期间的一道机试题,主要考察的是C++编程中的字符串处理和条件判断能力。题目要求编写一个函数`verifyMsisdn`来判断输入的手机号码字符串是否符合中国大陆手机号码的规范。 1. **手机...
华为的机试题以及答案 2013 供大家分享
华为上机考试题目及答案(答案是自己写的不一定准确),C/C++试题,题目是2013年2月到2013年6月共23道题目,另还有网上搜的几个题目。