No devuelve Cadena concatenar espera

Pērkone:

Mejoré solución para startOz tarea de CodingBat. He encontrado una mejor solución a partir de la anterior y cuando lo probé me dieron una solución inesperada en un caso de prueba.

public String startOz(String str) {
   String result = (str.indexOf('o') == 0 ? "o" : "").concat(str.indexOf('z') == 1 ? "z" : "");
   return result;
  }
// test case:
String str = "zzzz";
System.out.println("test=" + startOz(str));

No entiendo por qué me sale cadena vacía para el resultado cuando esperaba para obtener prueba de z =

Miguel :

str.indexOf('z') == 1vuelve falsa porque indexOf" devuelve el índice dentro de esta cadena de la primera ocurrencia del carácter especificado ". En su caso, str.indexOf('z')es cero, ya que el cero es la primera aparición.

Existe una versión de este método que toma un argumento adicional que define qué índice para empezar, así que usted podría utilizar el siguiente para comprobar si Z es el segundo personaje:

str.indexOf('z', 1) == 1

Dicho esto, una mejor aproximación a este problema es probablemente para el uso charAt:

if (str.charAt(0) == 'o') //...
if (str.charAt(1) == 'z') //...

Supongo que te gusta

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