Java - Uso operador ternario en la entrada de carbón para obtener booleano

Edward Suzuki:

Buscando hacer algo como en C #:

bool walkable = t.Type == TileType.Green ? true : false;

pero en Java

Boolean international_F = (in.next() == 'Y') ? true : false;

Lo anterior es lo que he probado hasta ahora. Se pregunta si es aún posible.

EDIT: Me he dado cuenta de .nextChar()que no existe. Editado fragmento de código para reflejar eso.

AjahnCharles:

"nextchar": Asumiendo que ines una Scanner, el problema es que escáner no tiene un nextChar()método. Se podía leer una palabra entera y, a continuación, tomar su primer carácter:

char theChar = in.next().charAt(0)

boolean vs ternery: Si sus salidas son de verdadero / falso, entonces no es necesario un if. Usted puede escribir:

bool walkable = t.Type == TileType.Green; // C#
boolean international_F = in.next().charAt(0) == 'Y'` // Java

boolean vs booleano: Tenga en cuenta también que booleanes el tipo booleano primitivos en Java. Usando Booleanobligará a ser envuelto como la clase de Boole.

mayúsculas y minúsculas: Si desea permitir 'y' o 'Y', forzar la entrada a un caso conocido en primer lugar. Dado que charAt()los rendimientos carbón primitiva, es necesario utilizar la estática Character.toUpperCase().

Solución:

boolean isY = Character.toUpperCase(in.next().charAt(0)) == 'Y'
// - OR - 
boolean isY = in.next().startsWith("Y") // not case-insensitive

Supongo que te gusta

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