การตรวจสอบความถูกต้องตามกฎหมายของบัตรประชาชน Java ID และรับข้อมูลที่ถูกต้องของหมายเลขบัตรประจำตัวประชาชนสำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
การตรวจสอบความถูกต้องตามกฎหมายของบัตรประจำตัวประชาชน Java
/** 6 หลักแรกของบัตรประจำตัวประชาชน [ABCDEF] คือการแบ่งส่วนรหัสดิจิตอล (อ้างอิงถึงรหัสดิจิตอลในระยะสั้น) คำอธิบาย (อ้างถึง "GB/T 2260-2007 รหัสการบริหารจัดการของสาธารณรัฐประชาชนจีน") ภายใต้รัฐบาลกลางภูมิภาคการบริหารพิเศษ), * เมือง (ภูมิภาค, เขตการปกครองอิสระ, ลีก) และมณฑล (มณฑลอิสระ, เมืองระดับเขต, แบนเนอร์, แบนเนอร์อิสระ, เขตเทศบาล, พื้นที่ป่า, เขตพิเศษ) ในประเทศจีนตามลำดับชั้น ความหมายของโครงสร้างรหัสรหัสดิจิตอลจากซ้ายไปขวาคือ: เลเยอร์แรกคือรหัสสองหลัก AB ที่แสดงถึงจังหวัดเขตปกครองตนเองเทศบาลโดยตรงภายใต้รัฐบาลกลางและภูมิภาคการบริหารพิเศษ เลเยอร์ที่สองคือรหัสซีดีสองหลักที่แสดงถึงรหัสสรุปของเทศบาลภูมิภาคจังหวัดอิสระพันธมิตรและเทศบาลโดยตรงภายใต้รัฐบาลกลางและประมวลกฎหมายสรุปของเขตการปกครองระดับเขตโดยตรงภายใต้การใช้งานโดยตรง รัฐบาลกลาง; ―21 ~ 50 แสดงถึงรหัสสรุปของอำเภอจังหวัดอิสระพันธมิตร; ―90 แสดงถึงรหัสสรุปของแผนกการบริหารระดับมณฑลโดยตรงภายใต้จังหวัด (เขตปกครองตนเอง) ชั้นสามเป็นตัวเลขสองหลักที่เป็นตัวแทนของมณฑล, เขตปกครองตนเอง, เมืองระดับเขต, แบนเนอร์, แบนเนอร์อิสระ, เขตเทศบาล, พื้นที่ป่าและเขตพิเศษ ในหมู่พวกเขา: ―01 ~ 20 หมายถึงเมืองระดับมณฑลที่มีเมืองระดับเขตภายใต้เขตอำนาจศาลของเมืองเขต (เขตปกครองตนเอง, ลีก) และเมืองระดับเขตภายใต้เขตปกครองระดับเขตโดยตรงภายใต้เขตอำนาจศาลของจังหวัด (เขตปกครองตนเอง) 01 มักจะแสดงถึงรหัสสรุปของเขตอำนาจศาล ―21 ~ 80 หมายถึงเมืองระดับมณฑลภายใต้เขตอำนาจของมณฑลมณฑลอิสระแบนเนอร์แบนเนอร์อิสระพื้นที่ป่าและเขตพิเศษระดับภูมิภาค ―81 ~ 99 หมายถึงเมืองระดับมณฑลภายใต้เขตอำนาจศาลของจังหวัด (เขตปกครองตนเอง) */นำเข้า java.text.parseexception; นำเข้า java.text.simpledateFormat; นำเข้า java.util.calendar; นำเข้า java.util.date นำเข้า java.util.gregoriancalendar; นำเข้า Java.util.hashmap; คำอธิบาย: การตรวจสอบความถูกต้องตามกฎหมายของบัตร ID * </p> * <p> *--15 หลักหมายเลข ID: ตัวเลขที่ 7 และ 8 เป็นปีเกิด (ตัวเลขสองหลัก) ตัวเลขหลักที่ 9 และ 10 เป็นเดือนแรกเกิดตัวเลขหลักที่ 11 และ 12 เป็นตัวแทนของวันเดือนปีเกิด *--18 หลักหมายเลข ID*: 7, 8, 9 และ 10 เป็นปีเกิด (สี่หลัก), 11 และ 12 เป็นเดือนเกิด, 13 และ 14 เป็นตัวแทนของวันเดือนปีเกิด, 17 เป็นตัวแทนของเพศตัวเลขคี่เป็นเพศชาย * </p> */@suppresswarnings ({"unchected", "unused", "all"}) ชั้นเรียนสาธารณะ idcardvalidator {/** * จังหวัด, ตารางรหัสเทศบาล: {11: "Beijing", 12: "tianjin", 13: "hebei", 14: 22: "Jilin", 23: "Heilongjiang", 31: "Shanghai", 32: "Jiangsu", * 33: "Zhejiang", 34: "Anhui", 35: "Fujian", 36: "Jiangxi", 37: "Shandong", 41: "Henan" 42: "Hubei", 43: "Hunan", 44: "Guangdong", 45: "Guangxi", 46: "Hainan", 50: "Chongqing", * 51: "Sichuan", 52: "Guizhou", 53: "Yunnan", 54: 63: "ชิงไห่", 64: "Ningxia", 65: "Xinjiang", 71: "Taiwan", 81: "Hong Kong", 82: "Macao", 91: "ต่างประเทศ"} * "13", "Hebei"}, {"14", "Shanxi"}, {"15", "Inner Mongolia"}, {"21", "Liaoning"}, {"22", "Jilin"}, {"23" "Jiangsu"}, {"33", "Zhejiang"}, {"34", "anhui"}, {"35", "Fujian"}, {"36", "Jiangxi"}, {"37", "Shandong" }, {"43", "Hunan"}, {"44", "Guangdong"}, {"45", "Guangxi"}, {"46", "Hainan"}, {"50", "chongqing"}, {"51" "Yunnan"}, {"54", "Tibet"}, {"61", "Shaanxi"}, {"62", "Gansu"}, {"63", "Qinghai"}, {"64", "Ningxia" }, {"81", "ฮ่องกง"}, {"82", "macao"}, {"91", "ต่างประเทศ"}}; Private String CityCode [] = {"11", "12", "13", "14", "15", "21", "22", "23", "31", "32", "33", "34", "35", "36", "37", "41", "42" "52", "53", "54", "61", "62", "63", "64", "65", "71", "81", "82", "91"}; // แต่ละปัจจัยการถ่วงน้ำหนักส่วนบุคคล int power [] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 8, 4, 2}; // รหัสการตรวจสอบบิต 18 สตริงส่วนตัว VerifyCode [] = {"1", "0", "x", "9", "8", "7", "6", "5", "4", "3", "2"}; / ** * ตรวจสอบความถูกต้องตามกฎหมายของบัตรประจำตัวประชาชนทั้งหมด * * @param Idcard * @return */ บูลีนสาธารณะ isvalidatedallidcard (String idcard) {ถ้า (idcard.length () == 15) {idcard = this.convertidCarBy15bit (idcard); } return this.isvalidate18idcard (idcard); } /** * <p> * กำหนดความถูกต้องตามกฎหมายของบัตรประชาชน 18 หลัก * </p> * ตามบทบัญญัติเกี่ยวกับหมายเลขรหัสความเป็นพลเมืองในมาตรฐานระดับชาติ GB11643-1999 ของสาธารณรัฐประชาชนจีนหมายเลขการตรวจสอบความเป็นพลเมือง * คำสั่งการจัดเรียงนั้นมาจากซ้ายไปขวา: รหัสที่อยู่หกหลัก, วันที่แปดหลักของรหัสเกิด, รหัสลำดับสามหลักและรหัสการตรวจสอบตัวเลขหนึ่งหลัก * <p> * รหัสลำดับ: ระบุหมายเลขลำดับที่กำหนดให้กับผู้ที่เกิดในปีเดียวกันเดือนและวันภายในพื้นที่ที่ระบุด้วยรหัสที่อยู่เดียวกัน จำนวนคี่ของรหัสลำดับถูกกำหนดให้กับผู้ชายและแม้แต่จำนวนที่ได้รับมอบหมายให้ผู้หญิง * </p> * <p> * 1. ตัวเลข 1 และ 2 แรกเป็นตัวแทน: รหัสของจังหวัด; 2. ตัวเลขที่ 3 และ 4 เป็นตัวแทน: รหัสของเมือง; 3. ตัวเลขที่ 5 และ 6 เป็นตัวแทน: ประมวลกฎหมายของอำเภอและเคาน์ตี; * 4. ตัวเลขที่ 7 ถึง 14 เป็นตัวแทน: ปี, เดือน, วันเกิด; 5. ตัวเลขที่ 15 และ 16 เป็นตัวแทน: รหัสของสถานีตำรวจในสถานที่; * 6. ตัวเลขที่ 17 แสดงถึงเพศ: ตัวเลขคี่เป็นตัวแทนของเพศชายและแม้แต่ตัวเลขก็เป็นตัวแทนของผู้หญิง * 7. ตัวเลขหลักที่ 18 เป็นรหัสการพิสูจน์อักษร: บางคนบอกว่าเป็นรหัสข้อมูลส่วนบุคคลซึ่งโดยทั่วไปจะถูกสร้างขึ้นโดยทั่วไปโดยคอมพิวเตอร์เพื่อตรวจสอบความถูกต้องของบัตรประจำตัวประชาชน รหัสการสอบเทียบอาจเป็นตัวเลขตั้งแต่ 0 ถึง 9 และบางครั้งก็แสดงด้วย X * </p> * <p> * วิธีการคำนวณของตัวเลขที่สิบแปด (รหัสตรวจสอบ) คือ: 1 คูณหมายเลข 17 หลักของหมายเลข ID ก่อนหน้าด้วยค่าสัมประสิทธิ์ที่แตกต่างกัน ค่าสัมประสิทธิ์จากหลักแรกถึงหลักที่สิบเจ็ดคือ: 7 9 10 5 8 4 * 2 1 6 3 7 9 10 5 8 4 2 * </p> * <p> * 2. เพิ่มผลลัพธ์ของการคูณตัวเลขและค่าสัมประสิทธิ์ 17 หลักเหล่านี้ * </p> * <p> * 3 ใช้การเพิ่มและหารด้วย 11 เพื่อดูว่าส่วนที่เหลือคืออะไร? * </p> * 4. ส่วนที่เหลือสามารถมี 11 ตัวเลข 0 1 2 3 4 5 6 7 8 9 10. จำนวนบัตรประจำตัวบัตรล่าสุดที่สอดคล้องกับแต่ละตัวคือ 1 0 x 9 8 7 6 5 4 3 * 2. * <p> * 5. จากด้านบนถ้าส่วนที่เหลือคือ 2 หากส่วนที่เหลือคือ 10 จำนวนบัตรประจำตัวสุดท้ายคือ 2. * </p> * * @param idcard * @return */ บูลีนสาธารณะ isvalidate18idcard (string idcard) {// non-18 bits เป็นเท็จถ้า (idcard.length ()! = 18) {return; } // รับสตริง 17 บิตแรก idcard17 = idcard.substring (0, 17); // รับสตริงบิต 18 idcard18code = idcard.substring (17, 18); ถ่าน C [] = null; String checkCode = ""; // เป็นตัวเลขทั้งหมดถ้า (isDigital (idcard17)) {c = idcard17.tochararray (); } else {return false; } if (null! = c) {int bit [] = new int [idcard17.length ()]; bit = converchartoint (c); int sum17 = 0; sum17 = getPowersum (บิต); // ตรวจสอบค่าผลรวมด้วย 11 เพื่อรับส่วนที่เหลือสำหรับการตรวจสอบรหัสตรวจสอบ = getCheckCodeBysum (SUM17); if (null == checkCode) {return false; } // จับคู่บิตที่ 18 ของบัตรประจำตัวประชาชนกับรหัสการสอบเทียบที่คำนวณได้ หากไม่เท่ากันมันเป็นเท็จถ้า (! idcard18code.equalsignorecase (checkCode)) {return false; }} ส่งคืนจริง; } /*** ตรวจสอบความถูกต้องตามกฎหมายของบัตรประจำตัว 15 บิต วิธีนี้ไม่ถูกต้อง เป็นการดีที่สุดที่จะแปลง 15 ถึง 18 บิตก่อนตัดสินซึ่งได้รับในชั้นเรียนนี้ * * @param Idcard * @return */ Public Boolean isValidate15idCard (String Idcard) {// บิตที่ไม่ใช่ 15 บิตเป็นเท็จถ้า (idcard.length ()! = 15) {return false; } // เป็นตัวเลขทั้งหมดถ้า (isDigital (idcard)) {string provinceId = idcard.substring (0, 2); สตริงวันเกิด = idcard.substring (6, 12); int year = integer.parseint (idcard.substring (6, 8)); int month = integer.parseint (idcard.substring (8, 10)); int day = integer.parseint (idcard.substring (10, 12)); // พิจารณาว่าเป็นธงบูลีนจังหวัดที่ถูกกฎหมาย = เท็จหรือไม่ สำหรับ (String ID: CityCode) {if (id.equals (ProvinceId)) {flag = true; หยุดพัก; }} if (! flag) {return false; } // วันเดือนปีเกิดของบัตรประจำตัวนี้เป็นเท็จหลังจากวันที่วันที่เกิดปัจจุบัน = null; ลอง {วันเกิด = ใหม่ simpledateFormat ("yymmdd"). แยกวิเคราะห์ (วันเกิด); } catch (parseexception e) {e.printstacktrace (); } if (วันเกิด == null || วันที่ใหม่ (). ก่อน (วันเกิด)) {return false; } // เพื่อตรวจสอบว่าเป็นปีที่ถูกกฎหมาย Gregoriancalendar Curday = New Gregoriancalendar (); int curyear = curday.get (calendar.year); int year2bit = integer.parseint (string.valueof (curyear) .substring (2)); //} // เพื่อตรวจสอบว่าเป็นเดือนที่ถูกกฎหมายหรือไม่ถ้า (เดือน <1 || เดือน> 12) {return false; } // เพื่อตรวจสอบว่าเป็นวันที่ตามกฎหมายบูลีน mflag = false; Curday.settime (วันเกิด); // กำหนดวันเดือนปีเกิดของบัตรประจำตัวนี้ให้กับสวิตช์ Curday Object (เดือน) {กรณีที่ 1: กรณีที่ 3: กรณีที่ 5: กรณีที่ 7: กรณีที่ 8: กรณีที่ 10: กรณีที่ 12: mFlag = (วัน> = 1 && วัน <= 31); หยุดพัก; กรณีที่ 2: // มี 28 วันในเดือนกุมภาพันธ์ของปฏิทินเกรกอเรียนและ 29 วันในเดือนกุมภาพันธ์ของปีกระโดด if (curday.isleapyear (curday.get (calendar.year))) {mflag = (วัน> = 1 && วัน <= 29); } else {mFlag = (วัน> = 1 && วัน <= 28); } หยุดพัก; กรณีที่ 4: กรณีที่ 6: กรณีที่ 9: กรณีที่ 11: mFlag = (วัน> = 1 && วัน <= 30); หยุดพัก; } if (! mFlag) {return false; }} else {return false; } return true; } / ** * แปลงบัตรประชาชน 15 หลักเป็นบัตรประจำตัว ID 18 หลัก * * @param Idcard * @return * / Public String ConvertIdCarby15bit (String Idcard) {String Idcard17 = Null; // บัตรประจำตัวที่ไม่ใช่ 15 บิตถ้า (idcard.length ()! = 15) {return null; } if (isDigital (idcard)) {// รับวันเกิดสายวันเกิด = idcard.substring (6, 12); วันเกิดวันที่ = null; ลอง {วันเกิด = ใหม่ simpledateFormat ("yymmdd"). แยกวิเคราะห์ (วันเกิด); } catch (parseexception e) {e.printstacktrace (); } ปฏิทิน cday = calendar.getInstance (); cday.settime (วันเกิด); String Year = string.valueof (cday.get (calendar.year)); idcard17 = idcard.substring (0, 6) + ปี + idcard.substring (8); ถ่าน C [] = IDCARD17.TOCHARARRAY (); String checkCode = ""; if (null! = c) {int bit [] = new int [idcard17.length ()]; // แปลงอาร์เรย์อักขระเป็นอาร์เรย์จำนวนเต็ม = ConverChartoint (C); int sum17 = 0; sum17 = getPowersum (บิต); // รับค่าผลรวมและรับส่วนที่เหลือเพื่อตรวจสอบรหัส checkCode = getCheckCodeBysum (sum17); // ไม่สามารถรับบิตตรวจสอบได้ถ้า (null == checkCode) {return null; } // splice 17 หลักแรกด้วยรหัสตรวจสอบหลัก 18 IDCARD17 += CheckCode; }} else {// บัตรประจำตัวมีหมายเลขส่งคืนหมายเลข null; } return idcard17; } / ** * การตรวจสอบตัวเลขและตัวเลขพื้นฐานของหมายเลขบัตรประชาชน 15 บิตและ 18 บิต * * @param Idcard * @return * / บูลีนสาธารณะ ISIDCARD (String Idcard) {return Idcard == NULL || "". เท่ากัน (Idcard)? false: pattern.matches ("(^// d {15} $) | (// d {17} (?: // d | x | x) $)", idcard); } / ** * ตัวเลขพื้นฐานและตัวเลขตรวจสอบสำหรับหมายเลขรหัส 15 หลัก * * @param idcard * @return * / บูลีนสาธารณะ IS15IDCARD (string idcard) {return idcard == null || "". เท่ากัน (Idcard)? FALSE: pattern.matches ("^[1-9] // d {7} (0 // d) | (1 [0-2])) ([[0 | 1 | 2] // d) | 3 [0-1]) // d {3} $", idcard); } / ** * หมายเลขพื้นฐานและตัวเลขตรวจสอบสำหรับหมายเลขรหัส 18 หลัก * * @param idcard * @return * / บูลีนสาธารณะ IS18IDCARD (string idcard) {รูปแบบการส่งคืน. matches ( "^[1-9] // d {5} [1-9] // d {3} ((0 // d) | (1 [0-2])) (([0 | 1 | 2] // d) | 3 [0-1]) // d {3} ([// d | x | x] } / ** * การตรวจสอบดิจิตอล * * @param str * @return * / บูลีนสาธารณะ isdigital (สตริง str) {return str == null || "". เท่ากัน (STR)? FALSE: Str.Matches ("^[0-9]*$"); } / ** * คูณแต่ละบิตของบัตรประจำตัวและปัจจัยการถ่วงน้ำหนักของบิตที่สอดคล้องกันจากนั้นรับค่ารวม * * @param บิต * @return * / public int getPowersum (int [] บิต) {int sum = 0; if (power.length! = bit.length) {return sum; } สำหรับ (int i = 0; i <bit.length; i ++) {สำหรับ (int j = 0; j <power.length; j ++) {ถ้า (i == j) {sum = sum+bit [i] * power [j]; }}} ส่งคืนผลรวม; } / ** * ตรวจสอบค่ารวมด้วย 11 เพื่อรับส่วนที่เหลือสำหรับรหัสการตรวจสอบ * * @param checkCode * @param sum17 * @return ตรวจสอบบิต * / สตริงสาธารณะ getCheckCodeBysum (int sum17) {String checkCode = null; สวิตช์ (sum17 % 11) {กรณีที่ 10: checkCode = "2"; หยุดพัก; กรณีที่ 9: checkCode = "3"; หยุดพัก; กรณีที่ 8: checkCode = "4"; หยุดพัก; กรณีที่ 7: checkCode = "5"; หยุดพัก; กรณีที่ 6: checkCode = "6"; หยุดพัก; กรณีที่ 5: checkCode = "7"; หยุดพัก; กรณีที่ 4: checkCode = "8"; หยุดพัก; กรณีที่ 3: checkCode = "9"; หยุดพัก; กรณีที่ 2: checkCode = "x"; หยุดพัก; กรณีที่ 1: checkCode = "0"; หยุดพัก; กรณีที่ 0: checkCode = "1"; หยุดพัก; } return checkCode; } / ** * แปลงอาร์เรย์อักขระเป็นอาร์เรย์จำนวนเต็ม * * @param c * @return * @throws numberFormatexception * / public int [] converchartoint (char [] c) โยน numberFormatexception {int [] a = new int [c.length]; int k = 0; สำหรับ (char temp: c) {a [k ++] = integer.parseint (string.valueof (temp)); } return a; } โมฆะคงที่สาธารณะหลัก (สตริง [] args) พ่นข้อยกเว้น {สตริง idcard15 = "142431199001145"; // 15 บิตสตริง idcard18 = "1212121212121212121212121212"; System.out.println (iv.isvalidatedallidCard (IDCARD15)); System.out.println (iv.isvalidatedallidCard (IDCARD18)); -แยกข้อมูลที่เกี่ยวข้องกับบัตรประจำตัวประชาชนตามหมายเลขบัตรประจำตัวประชาชน
นำเข้า java.text.simpledateFormat; นำเข้า java.util.calendar; นำเข้า java.util.date; นำเข้า java.util.Gregoriancalendar; นำเข้า java.util.hashmap; นำเข้า java.util.map; IDCARDINFOEXTRACTOR {// จังหวัดสตริงส่วนตัวจังหวัด; // เมืองพายุส่วนตัวเมือง; // ภูมิภาคและเขตพื้นที่ส่วนตัวของมณฑล; // ปีเอกชนปี // เดือนเอกชนเดือน // วันที่วันส่วนตัว // เพศโซนส่วนตัวเพศ; // วันเกิดวันเกิดวันเกิดวันเกิด; แผนที่ส่วนตัว <สตริง, สตริง> cityCodeMap = new hashmap <สตริง, สตริง> () {{this.put ("11", "Beijing"); this.put ("12", "Tianjin"); this.put ("13", "Hebei"); this.put ("14", "Shanxi"); this.put ("15", "ชั้นในมองโกเลีย"); this.put ("21", "liaoning"); this.put ("22", "Jilin"); this.put ("23", "Heilongjiang"); this.put ("31", "เซี่ยงไฮ้"); this.put ("32", "Jiangsu"); this.put ("33", "Zhejiang"); this.put ("34", "anhui"); this.put ("35", "Fujian"); this.put ("36", "Jiangxi"); this.put ("37", "Shandong"); this.put ("41", "Henan"); this.put ("42", "Hubei"); this.put ("43", "Hunan"); this.put ("44", "กวางตุ้ง"); this.put ("45", "guangxi"); this.put ("46", "Hainan"); this.put ("50", "Chongqing"); this.put ("51", "เสฉวน"); this.put ("52", "Guizhou"); this.put ("53", "ยูนนาน"); this.put ("54", "ทิเบต"); this.put ("61", "Shaanxi"); this.put ("62", "gansu"); this.put ("63", "ชิงไห่"); this.put ("64", "Ningxia"); this.put ("65", "Xinjiang"); this.put ("71", "ไต้หวัน"); this.put ("81", "ฮ่องกง"); this.put ("82", "macao"); this.put ("91", "ต่างประเทศ"); - IdCardValidator Private = NULL; / *** เริ่มต้นแอตทริบิวต์สมาชิกแต่ละตัวผ่านตัวสร้าง*/ IDCardInfoExtractor (String Idcard) {ลอง {quidator = ใหม่ idcardValidator (); if (validator.isvalidatedAllIdCard (idcard)) {ถ้า (idcard.length () == 15) {idcard = validator.convertidCarby15bit (idcard); } // รับสตริงจังหวัด ProvinceId = idcard.substring (0, 2); ตั้งค่า <string> key = this.cityCodeMap.keyset (); สำหรับ (รหัสสตริง: คีย์) {if (id.equals (ProvinceId)) {this.province = this.cityCodeMap.get (id); หยุดพัก; }} // รับสตริงเพศ id17 = idcard.substring (16, 17); if (integer.parseint (id17) % 2! = 0) {this.gender = "male"; } else {this.gender = "หญิง"; } // รับวันเกิดสายวันเกิด = idcard.substring (6, 14); วันเกิดวันเกิด = ใหม่ simpledateFormat ("yyyymmdd") .parse (วันเกิด); this.birthday = วันเกิด; Gregoriancalendar Currentday = New Gregoriancalendar (); วันเกิดวันที่ (วันเกิด); this.year = currentday.get (calendar.year); this.month = currentday.get (calendar.month) + 1; this.day = currentday.get (calendar.day_of_month); }} catch (exception e) {e.printstacktrace (); }} / ** * @return the Province * / Public String getProvince () {Return Province; } / ** * @return the City * / Public String getCity () {Return City; } / ** * @return ภูมิภาค * / สตริงสาธารณะ getRegion () {return region; } / ** * @return ปี * / สาธารณะ int getYear () {ปีกลับ; } / ** * @return เดือน * / public int getMonth () {ส่งคืนเดือน; } / ** * @ส่งคืนวัน * / public int getday () {วันกลับ; } / ** * @return เพศ * / สตริงสาธารณะ getGender () {return gender; } / ** * @return วันเกิด * / วันที่สาธารณะ getBirthday () {คืนวันเกิด; } @Override สตริงสาธารณะ toString () {return "จังหวัด:" + this.province + ", เพศ:" + this.gender + ", วันเดือนปีเกิด:" + this.birthday; } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {string idcard = "1212121212121212121212"; idcardinfoextractor IE = ใหม่ idcardinfoextractor (idcard); System.out.println (เช่น. toString ()); -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น