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