现在给你一个新一代新身份证号,默认为18位号码,如果该号码是15位的话,请在第6位后面加上“19”,并在最后一位加上“X”,如果是18位,则不变。

解决方案 »

  1.   

    package cn.dzr.shenfenzheng;import java.io.BufferedReader;
    import java.io.InputStreamReader;public class VerifyIdentityCard
    { public static void main(String[] args) throws Exception
    {
    P("请输入身份证号....");
    P("如果想结束输入,请输入  bye ....");
    // byte[] buff = new byte[100];
    // int len=0;

    BufferedReader bufIn=new BufferedReader(new InputStreamReader(System.in));

    String str=null;
    String regex1 = "[0-9]{15}";
    String regex2 = "[0-9]{18}";
    while((str = bufIn.readLine())!="bye")
    {
    if(str.equals("bye"))
    {
    P("bye");
    break;
    }
    else if(str.matches(regex1))
    {
    StringBuilder sb = new StringBuilder(str);
    sb.append('X');
    sb.insert(6, "19");
    P("你输入的身份证号码为15位:");
    P(sb);
    }
    else if(str.matches(regex2))
    {
    P("你输入的身份证号码为18位:");
    P(str);
    }
    else
    {
    P("你输入的身份证号码不正确!请重新输入....");
    }

    }



    } private static<T> void P(T t)
    {
    System.out.println(t);
    }}
      

  2.   

    用StringBuffer也可以,但是StringBulider提供一个与 StringBuffer 兼容的 API,不保证同步。StringBulider被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。
      

  3.   

    用StringBuffer也可以,但是StringBulider提供一个与 StringBuffer 兼容的 API,不保证同步。StringBulider被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。
      

  4.   


    String transformString(String input) {
    }
      

  5.   

    一行代码搞定
    String transformString(String input) {
      return input.length() == 15 ? input.substring(0, 6) + "19" + code.substring(6, 15) + "X" :  input;
    }
      

  6.   

    打错字了,改一下
    String transformString(String input) {
      return input.length() == 15 ? input.substring(0, 6) + "19" + input.substring(6, 15) + "X" :  input;
    }
      

  7.   

    只需要简单的if、else、三元、for、while等等就可以解决,完全不需要数据结构的思想;现在的机试题都很挑剔的,遇到lz的这种上机题,属于运气好的。
      

  8.   

    stringbuffer   str = new stringbuffer()
    String s = "你的号码";
    if(s长度==15){
    str.append(s.substring(0,5)).append("19").append(s.substring(5));
    return str;
    }else if(s长度==18){
    ...
    }else{
    syso("号码不存在,确认后,重新输入...");
    }