1

我必须编写这个程序来输出名字的第一个字母和姓氏的前五个字母加上一个从 10 到 99 的随机数。它有效,但我认为 substring 方法从 0 开始并从那里开始,因此 substring(0,0) 将仅包含第一个字母,同样 substring(0,4) 将包含前 5 个字母 0 1 2 3 4 个字母. 或者它不包括输出中的最终数字?

import java.util.Scanner;
import java.util.Random;

public class NameModifier
{

public static void main (String[] args)
    {

    String namefirst;
    String namelast;
    Random generator = new Random();
    int num;

    num = generator.nextInt(99) + 10;

    Scanner scan = new Scanner (System.in);

    //prompts user
    System.out.print ("Enter your first name: ");
    namefirst = scan.nextLine();    
    System.out.print ("Enter your last name: ");    
    namelast = scan.nextLine();
    System.out.println("Your entered: " + namefirst + " " + namelast);

    //outputs modified username possibility
    System.out.println("Here is a random username for you: ");
    System.out.print (namefirst.substring(0, 1));
    System.out.print (namelast.substring(0,5));
    System.out.print (num);

    scan.close();

    }
}
4

2 回答 2

3

我希望你能通过这个例子更好地理解:

在此处输入图像描述

于 2013-10-16T16:47:56.770 回答
2

Java 的子字符串输入,

public String substring(int beginIndex,int endIndex)

beginIndex - the beginning index, inclusive.
endIndex - the ending index, exclusive.

注意排他性。substring(0,1) 将返回一个包含字符 0 的字符串,最多但不包括字符 1。

来源:http ://docs.oracle.com/javase/7/docs/api/java/lang/String.html#substring (int , int)

于 2013-10-16T16:40:12.157 回答