在Java中打印姓氏+姓氏的5个字符

时间:2014-05-09 14:31:53

标签: java printf

我正在尝试获取用户输入并打印出姓氏+ 5个字符,后跟随机数字。我是Java的新用户,我已经能够获得用户输入并输入随机数,但我不太确定如何格式化printf以仅从我的5个字符第二串。我甚至不确定printf是我正在寻找的。

Scanner name = new Scanner (System.in);

String firstname;
String secondname;
System.out.println("Enter your first name:");
firstname = name.next();
System.out.println("Enter your last name:");
secondname = name.next();

我是如何获得用户输入的名字和姓氏。

编辑:我应该假设姓氏超过5个字符

4 个答案:

答案 0 :(得分:4)

您可以使用String.substring获取String的一部分。

System.out.println(secondname.substring(0,5));

请务必先检查实际长度,否则您将抛出StringIndexOutOfBoundsException

另请记得检查null s。

答案 1 :(得分:2)

如果您希望在姓氏(secondname)中显示最多五个字符,则可以使用子字符串:

System.out.println(secondname.substring(0, Math.min(5, secondname.length())));

因此,您的最终输出将是这样的:

// Import 'java.util.Random' at the top of your file

Random rand = new Random();
int max = 9999;
int min = 1000;
int rnd = rand.nextInt((max - min) + 1) + min;

String fullString = firstname
    + secondname.substring(0, Math.min(5, secondname.length()))
    + String.valueOf(rnd);

答案 2 :(得分:1)

像这样的东西:

String result = firstname + ((secondname.length() > 5) ? secondname.substring(0, 5) : secondname) + random;

此代码检查secondname长度,如果secondname短于5个字符,则将完全附加。 随机 - 是你的随机数。 结果将包含您所需要的内容。

答案 3 :(得分:1)

这样就可以了解

    String secondname = "sdrias";
    String firstname = "rasdgfdsg";
    String combinedString = "";
    if(secondname.length() < 5) {
       combinedString = firstname+secondname;
    } else {
       combinedString = firstname+secondname.substring(0, 5);
    }

    System.out.println(combinedString);