0

I originally had this program written with 3 variables, one for each set of numbers but, I could not get java to print numbers like 0007 for the last four numbers. It would just print XXX-XXX-7 instead of XXX-XXX-0007. How can I get the random num generator to print additional 0's in numbers like 0748, 0023, 0005 for my phone numbers? Thank you!

import java.util.Random;
public class PhoneNumbers
{

public static void main (String[] args)
    {

    int digit1, digit2, digit3, digit4, digit5, digit6, digit7, digit8, digit9, digit10;

    Random generator = new Random();
    //creates a random number
    digit1 = generator.nextInt(8);
    digit2 = generator.nextInt(8);
    digit3 = generator.nextInt(8);
    digit4 = generator.nextInt(8); 
    digit5 = generator.nextInt(5);
    digit6 = generator.nextInt(3);
    digit7 = generator.nextInt(10);
    digit8 = generator.nextInt(10);
    digit9 = generator.nextInt(10);
    digit10 = generator.nextInt(10);

    //outputs the number including dashes
    System.out.println("A random 10-digit phone number:");
    System.out.print(digit1);
    System.out.print(digit2);
    System.out.print(digit3);
    System.out.print("-");
    System.out.print(digit4);
    System.out.print(digit5);
    System.out.print(digit6);
    System.out.print("-");
    System.out.print(digit7);
    System.out.print(digit8);
    System.out.print(digit9);
    System.out.print(digit10);

    }
}
kjhughes
  • 106,133
  • 27
  • 181
  • 240
Lou44
  • 65
  • 2
  • 4
  • 13
  • possible duplicate of [Sprintf equivalent in Java](http://stackoverflow.com/questions/47045/sprintf-equivalent-in-java) – Marc B Oct 16 '13 at 17:09

2 Answers2

0

You can create a string with the leading zeros:

int value = 7;
String valueStr = ("0000" + value);
valueStr = valueStr.substring(valueStr.length()-4);

Then just print the string.

You can also use a formatter:

int value = 7;
DecimalFormat myFormatter = new DecimalFormat("0000");
String output = myFormatter.format(value);

Then print the string

Lee Meador
  • 12,829
  • 2
  • 36
  • 42
0
Random generator = new Random();

// creates a random number
int part1 = generator.nextInt(1000);
int part2 = generator.nextInt(1000);
int part3 = generator.nextInt(10000);

// outputs the number including dashes
System.out.println("A random 10-digit phone number:");
System.out.printf("%03d-%03d-%04d\n", part1, part2, part3);

Using printf gives you control over how the numbers are formatted. %d is a placeholder for each integer. 03 in %03d formats the number with a minimum of 3 digits, padding it with 0's as needed. See Format String Syntax for full details of how printf formatting works.

John Kugelman
  • 349,597
  • 67
  • 533
  • 578