在Java中组合子串

时间:2015-04-22 06:25:34

标签: java string substring

我遇到这个问题,其中来自字符串的所采用的字符必须组合以便基于用户输入生成唯一的密码。我目前卡在编码中,请帮助我:这是代码:

import java.util.Scanner;

class GetInputFromUser{

   public static String a;
   public static Scanner in ;

   public static void main(String args[]) {

      String s;
      String y;
      String p;

      in = new Scanner(System.in);



        System.out.println("LastName: ");
        s = in.nextLine();
        String trimmeds = s.substring(0, 3);
        System.out.println(trimmeds); 

         System.out.println("FirstName: ");
         y = in.nextLine();

        String trimmedy = y.substring(y.length() -3);
        System.out.println(trimmedy); 

        digit();
        if (!(a.length()==8)){
        System.out.println("error");
        digit();

      }

     }
        public static void digit(){
        System.out.println("8-digit ID Num.: ");
        a = in.nextLine();

        String trimmeda = a.substring(a.length() -3);
        System.out.println(trimmeda); 

   }

}

以下是该计划的输出:

名字: Dizon博士

DIZ

姓: 克里斯汀

10

8位数身份编号: 12345678

678

我需要帮助结合“Diz”,“ten”和“678”。

最后一个输出应为“Dizten678”。

2 个答案:

答案 0 :(得分:0)

我不明白你的问题,但也许,这段代码可能有效。 用此替换你的函数 public static void digit()

    public static void digit(){
            in = new Scanner(System.in);
            System.out.println("8-digit ID Num.: ");
            a = in.nextLine();
            String trimmeda = a.substring(a.length() -3);
            System.out.println(trimmeda);
            System.out.println(s+y+trimmeda); // this line shows the output you want

       }

答案 1 :(得分:0)

这就是你想要的吗?

组合两个子串就可以这样做;

import java.io.*;

public class Test{
   public static void main(String args[]){
      String str = new String("Welcome to Tutorialspoint.com");
      String str1 = str.substring(10);
      // returns: Tutorialspoint.com
      String str2 = str.substring(10, 15);
      // returns: Tuto
      String finalStr = str1 + str2;
      // returns: Tutorialspoint.comTuto
   }
}