2013-10-16 7 views
0

J'ai eu à l'origine de ce programme écrit avec 3 variables, un pour chaque ensemble de nombres, mais je ne pouvais pas obtenir java pour imprimer des chiffres comme 0007 pour les quatre derniers chiffres. Il suffit d'imprimer XXX-XXX-7 au lieu de XXX-XXX-0007. Comment puis-je obtenir le générateur de nombres aléatoires pour imprimer des 0 supplémentaires dans des nombres comme 0748, 0023, 0005 pour mes numéros de téléphone? Je vous remercie!0 dans Nombres aléatoires

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); 

    } 
} 
+0

double possible de [sprintf équivalent en Java] (http://stackoverflow.com/questions/47045/sprintf-equivalent-in-java) –

Répondre

0

Vous pouvez créer une chaîne avec les zéros:

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

Ensuite, il suffit imprimer la chaîne.

Vous pouvez également utiliser un formatter:

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

imprimer ensuite la chaîne

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); 

L'utilisation printf vous permet de contrôler la façon dont les numéros sont mis en forme. %d est un espace réservé pour chaque entier. 03 dans %03d formate le nombre avec un minimum de 3 chiffres, il rembourrage avec 0 « s au besoin. Voir Format String Syntax pour plus de détails sur la façon dont fonctionne le formatage printf.