java18
⑴ java判断输入的18位数(最后一位可能是x)的身份证是否合法
package com.uttest;
import com.util.*;
import javax.swing.*;
import java.awt.event.*;
public class IDTestCase extends JFrame{
JTextField txtIDNumber;
JButton btnCheck;
public IDTestCase(){
super("检查身份证号");
setBounds(0,0,400,60);
setResizable(false);
setLayout(new java.awt.FlowLayout());
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
txtIDNumber=new JTextField(18);
add(txtIDNumber);
btnCheck=new JButton("检查");
btnCheck.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,IDNumberChecker.isLegal(txtIDNumber.getText())?"合法":"非法","检查结果",JOptionPane.INFORMATION_MESSAGE);
}
});
add(btnCheck);
setVisible(true);
}
public static void main(String[] args){
new IDTestCase();
}
}
//IDNumberCheck.java
package com.util;
public class IDNumberChecker{
public static boolean isLegal(String IDNumber){
boolean result=IDNumber.matches("[0-9]{15}|[0-9]{17}[0-9X]");
if(result){
int year,month,date;
if(IDNumber.length()==15){
year=Integer.parseInt(IDNumber.substring(6,8));
month=Integer.parseInt(IDNumber.substring(8,10));
date=Integer.parseInt(IDNumber.substring(10,12));
}
else{
year=Integer.parseInt(IDNumber.substring(6,10));
month=Integer.parseInt(IDNumber.substring(10,12));
date=Integer.parseInt(IDNumber.substring(12,14));
}
switch(month){
case 2:result=(date>=1)&&(year%4==0?date<=29:date<=28);break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:result=(date>=1)&&(date<=31);break;
case 4:
case 6:
case 9:
case 11:result=(date>=1)&&(date<=31);break;
default:result=false;break;
}
}
return result;
}
}
⑵ Java-18位身份证号的正则表达式。帮忙拆一下代码。
^ 匹配字符串的开始
[1-9] 第1位:1-9
\d{5} 第2-6位:0-9
[1-9] 第7位:1-9
\d{3} 第8-10位:0-9
((0\d)|(1[0-2])):
第11-12位:(00-09)或(10-12)
(([0|1|2]\d)|3[0-1])
第13-14位:(00-29)或(30-31)
\d{3} 第15-17位:0-9
([0-9]|X)
第18位:0-9或X
$ 匹配字符串的结束
⑶ java表达式¨23 & 18''的值是
答案是23&18
如果是23&18那么是进行运算的.但是"23&18"加了一对引号,代表这是一个String字符串,所以直接输出23&18
⑷ java(tm)update18 是什么东西,可以删掉吗
是java的jre,你是用那个版本的jdk?现在都有java(tm)6 update26了
⑸ java培训,老师18上面有吗
Java的应用领域很广,毋庸置疑,同时不同的方向待遇也有不同的待遇。就市场大致的就业情况来看,方向很多,薪资也是从8K到20K不等。
如果想入行Java开发行业,却苦于自己没有基础,担心自己学不会,可以选择专业的学习。Java学习可以从基础开始,零基础学习并不可怕,一般4-6个左右的时间,只要你肯努力,一切都不是事。
⑹ 【Java】编写可以随意输入年龄,如果大于18岁则输出“你的年龄大于18岁!”如何才能无限次输入
修改的代码如下:
importjava.util.Scanner;
publicclassDemo02{
publicstaticvoidmain(String[]args){
Scannerreader=newScanner(System.in);
while(true){
intx=reader.nextInt();
if(x==0){
break;//输入0时结束
}elseif(x>=18){
System.out.println("你的年龄大于18岁");
}else{
System.out.println("你还小呢");
}
}
}
}
把输入的语句和判断的语句写在while循环里面 ,while的表达式为true,这样就能无限循环了。同时做一个判断,输入0时,跳出循环,程序结束。
⑺ Java如何得到一个18位的随机数
既然你能接受18为的数,那你可以用Math.random()*1000000000000000000得到。
如果说Math.random()不能精确到18位的话,当然我懒得去看,你自己试试到底能精确几位,比如只能精确到6位,那么如果随机数乘以1亿,得到的是前六位是随机的,你可以再做一个剩余几位的随机数加到前面那个随机数里面进去,这样得到的应该是个1亿内的随机数。
那你可以这么做,
Math.random*10000000000000000000+Math.random()*1000000000000+Math.random()*10000000;同理,其他任意位的数字可以得到。
⑻ java生成18位的唯一id
是数字、还是字母的
~
~
~
⑼ 用JAVA编写一个对18位身份证的输入验证程序.要求输入的18位数字或最后一位为x时,通过验证,否则不通过.
private static final String onlyNum = "^[0-9]*{1}“;
/**
* 验证身份证号码
* @param id_number
* @return
*/
public static Boolean checkNID(String id_number){
Boolean isRight = false;
if(id_number.length() != 15 && id_number.length() != 18){
return false;
}
String string = id_number.substring(0, id_number.length() - 1);
if(!string.matches(onlyNum)){
return false;
}
if(id_number.length() == 15){
return is15IDNumberRight(id_number);
} else if(id_number.length() == 18){
return is18IDNumberRight(id_number);
}
return isRight;
}
⑽ java输入身份证(18位),输出年龄。
刚写出来,其实就是字符串的截取。
package com.swing;
import java.util.Calendar;
import java.util.Timer;
public class NianLing {
public static void main(String[] args) {
String s = "610400199011100000";
s = s.substring(6, s.length()-8);
System.out.println(s);
Calendar cal = Calendar.getInstance();
java.util.Date date = cal.getTime();
String s1 = date.toString();
String s2 = (String) s1.subSequence(s1.length()-4, s1.length());
System.out.println(date);
System.out.println(s2);
Integer int1 = Integer.parseInt(s);
Integer int2 = Integer.parseInt(s2);
Integer age = int2-int1;
System.out.println("age : " + age);
}
}
输出结果:age:22
1990
Fri Dec 14 23:26:52 CST 2012
2012
age : 22