Scanner in=new Scanner(System.in);
    System.out.println("请输入文字密码");
    String a = in.nextLine();
     for (int i = 0; i < a.length(); i++){
    int c = Integer.valueOf(a.charAt(i));
   //System.out.println(c);
  StringBuffer iii=new StringBuffer();
   String ia="0";
   String ib="1";
   String ic="2";
   String id="3";
   String ie="4";
   String f="5";
   String ig="6";
   String ih="7";
   String ii="8";
   String ij="9";
   switch (c){
        case 97:
            iii.insert(0,ia);
            break;
            case 98:
            iii.insert(0,ib);
            break;
            case 99:
            iii.insert(0,ic);
            break;
            case 100:
            iii.insert(0,id);
            break;
            case 101:
            iii.insert(0,ie);
            break;
            case 102:
            iii.insert(0,f);
            break;
            case 103:
            iii.insert(0,ig);
            break;
            case 104:
            iii.insert(0,ih);
                break;
            case 105:
            iii.insert(0,ii);
            break;
            case 106:
            iii.insert(0,ij);
            break;
            
    }
    String iiii=iii.toString();
        String sub = iiii.substring(0,5);
        System.out.println(sub);
     }

解决方案 »

  1.   

    iii没有初值,就转成String,然后截取,肯定报错了
      

  2.   

    难道没报错 第几行吗?  你这个不严谨的编码 输入A肯定报错,正常输入0 1 2 3 4 5 6 7 8 9 我觉的应该是可以的
    但是我没有你的jar支持,我第一行就报错了,就不想看了
     你直接告诉我们 你第几行报错 不就行了
      

  3.   


    Scanner in = new Scanner(System.in);
    System.out.println("请输入文字密码");
    String a = in.nextLine();
    StringBuffer iii = new StringBuffer();
    for (int i = 0; i < a.length(); i++) {
    int c = Integer.valueOf(a.charAt(i));
    // System.out.println(c);
    String ia = "0";
    String ib = "1";
    String ic = "2";
    String id = "3";
    String ie = "4";
    String f = "5";
    String ig = "6";
    String ih = "7";
    String ii = "8";
    String ij = "9";
    switch (c) {
    case 97:
    iii.insert(0, ia);
    break;
    case 98:
    iii.insert(0, ib);
    break;
    case 99:
    iii.insert(0, ic);
    break;
    case 100:
    iii.insert(0, id);
    break;
    case 101:
    iii.insert(0, ie);
    break;
    case 102:
    iii.insert(0, f);
    break;
    case 103:
    iii.insert(0, ig);
    break;
    case 104:
    iii.insert(0, ih);
    break;
    case 105:
    iii.insert(0, ii);
    break;
    case 106:
    iii.insert(0, ij);
    break; }
    }
    String iiii = iii.toString();
    String sub = iiii.substring(0, 5);
    System.out.println(sub);
      

  4.   

    StringBuffer iii=new StringBuffer();String iiii=iii.toString();
            String sub = iiii.substring(0,5);
            System.out.println(sub);放到for循环外面才对
      

  5.   

    还有单线程应该使用StringBuilder而不是StringBuffer