¿Por qué JOptionPane perturba mi cadena?

Tengo una línea de código similar a la siguiente:

final String food = 
    (String) JOptionPane.showInputDialog(this, "Choose a food", "Food",
                                         JOptionPane.QUESTION_MESSAGE, null,
                                         {"Pizza", "Hot Dog"}, "Pizza");

Cuando uso la variable food, obtengo una parte de la cadena, pero también algunos otros caracteres que no puedo ver. No estoy seguro de lo que está pasando. ¿Alguien me puede ayudar?

Para reproducir el problema:

System.out.println(System.getenv("APPDATA") + File.separator + food + ".txt");

Se supone que imprime algo como esto:

C:\Users\userName\AppData\Roaming\Pizza.txt

Pero en realidad da el resultado:

.txtsers\userName\AppData\Roaming\Pizza
Respuesta 1

El error debe estar en otro lugar de su código.

Acabo de ejecutar el siguiente código:

String[] options = {"Pizza", "Hot Dog"};

final String food = (String) JOptionPane.showInputDialog(null, "Choose a food", "Food", JOptionPane.QUESTION_MESSAGE, null, options, "Pizza");

System.out.println("'" + food + "'");

Cuando seleccioné Pizza, obtuve Pizza en la consola. Cuando seleccioné Hot Dog, obtuve Hot Dog .

Sobre la otra parte de tu código. Acabo de correr:

String[] options = {"Pizza", "Hot Dog"};

final String food = (String) JOptionPane.showInputDialog(null, "Choose a food", "Food", JOptionPane.QUESTION_MESSAGE, null, options, "Pizza");

StringBuilder sb = new StringBuilder();
sb.append(System.getenv("APPDATA"));
sb.append(File.separator);
sb.append(food);
sb.append(".txt");
System.out.println(sb.toString());

Y obtuve C: \ alguna carpeta en mi computadora \ Hot Dog.txt y C: \ alguna carpeta en mi computadora \ Pizza.txt .

Respuesta: 2

Su código ni siquiera se compila porque espera un Object []. pruebe la nueva cadena [] {"Pizza", "Hot Dog"} en lugar de simplemente {"Pizza", "Hot Dog"}

Respuesta: 3

Permítanme comenzar diciendo que no soy un programador extremadamente experimentado y le agradecería mucho si pudiera especificar completamente cualquier paso que de lo contrario omitiría mencionar. Actualmente estoy en ...

Supongamos que tengo un montón de páginas HTML (muy simples), que quiero aplicar un "tema común". Estos archivos se descargan usando varios scripts Groovy, y me gustaría aplicarles este estilo ...

Para Apache HttpClient, cuando me autentico en una página web, ¿necesito establecer parámetros para los campos de entrada "ocultos"? Además, ¿alguien ha conseguido que HtmlUnit funcione en Android?

Estoy escribiendo un archivo Ant build.xml para un JAR ejecutable por primera vez, y estoy perplejo en cuanto a lo que necesito incluir en el JAR. Se puede pensar que el proyecto está compuesto de lo siguiente: ...