Java Archivo de salida: Número de error de formato para un mazo de cartas con el número de tarjetas sólo se conoce en tiempo de ejecución

Toni Pila:

Hice un programa de barajar cartas exitoso que tiene el número de cartas de la baraja como una entrada del usuario en tiempo de ejecución, e imprime cada tarjeta en una línea separada en el archivo de texto de salida.

Yo quería hacer una mejora a donde Si la cubierta era de entre 10 y 99 tarjetas, el archivo de salida de las líneas que contienen los números 1 a 9 como 01 a 09 en su lugar.

Traté de leer https://javadevnotes.com/java-integer-to-fixed-length-string y lo adaptó a mi programa. Se compiló con éxito en jGRASP IDE, pero en tiempo de ejecución después de introducir el número de cartas en la baraja a continuación, el nombre del archivo de salida, el programa termina con excepción ilegal de conversión de formato en la línea:

currentCard= String.format("%0"+ deckLimit.length() + "d", String.valueOf(tempValue));

¿Cómo puedo arreglar para que esto no suceda?

Variables relevent:

String currentCard;
int tempValue;
int deckSize;
String deckLimit;
deckSize = read.nextInt();
deckLimit = String.valueOf(deckSize);

línea de problema:

currentCard= String.format("%0"+ deckLimit.length() + "d", String.valueOf(tempValue));
Kevin Anderson:

Estás utilizando un %despecificador de formato, pero el valor que estamos tratando de formato con ella, String.valueOf(tempValue), es una String. Si tempValuees el número que desea formateado, a continuación,

 currentCard= String.format("%0"+ deckLimit.length() + "d", tempValue);   

es el código que desee.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=282121&siteId=1
Recomendado
Clasificación