Encuentra la primera aparición de dos personajes

No sé qué grado de flexibilidad requiere, pero simplemente haría esto de la forma tradicional de recorrer String, algo como esto:

public static char findFirstChar(String str, char c1, char c2) {
    for (char c : str.toCharArray())
        if (c == c1 || c == c2)
            return c;
    return 0;
}

Por supuesto, esto devolverá lo charque encuentra primero o 0 si ninguna de las dos charse encuentra en la cadena.

Si desea buscar un número arbitrario de caracteres:

public static char findFirstChar(String str, char ... chars) {
    for (char c1 : str.toCharArray())
        for (char c2 : chars)
            if (c1 == c2)
                return c1;
    return 0;
}
Respuesta 1

Yo diría que deberías comenzar definiendo exactamente qué comportamiento quieres. Suponga que sus términos de búsqueda son "1" y "2", ¿qué se debe devolver para cada una de las siguientes cadenas?

  • "blah1blah2"
  • "blah2blah1"
  • "blahblah1"
  • "blahblah2"
  • "blahblah"

Escriba casos de prueba para cada uno de estos, con su respuesta. Ahora haga pasar las pruebas. ¡Sencillo!

Respuesta: 2

No estoy seguro de que haya otra forma, pero para verificar si los personajes están allí antes de comparar:

String result;
if (str.indexOf('1') > -1 && str.indexOf('2') > -1 ) {
   str.indexOf('2') > str.indexOf('1') ? result ="1 before 2":result="2 before 1";
}
else {
    result="one of them is not there"
}
System.out.println(result);

Todo depende de los resultados que esperes.

Respuesta: 3

Tengo debajo de JSON {"fecha": {"año": 2017, "mes": 3, "día": 12}, "nombre": "Jon", "mensaje": {"producto": "naranja", "precio": 2000}} y ...

Como sabemos que el contenido de los archivos CSV tiene cada línea separada usando \ r \ n, entonces podemos obtener cada línea fácilmente. Código como: scanner.useDelimiter ("\ r \ n"); while (scanner.hasNext ()) {scanner.next (); } Pero ...

Estoy tratando de configurar un programa que tome la entrada del usuario (ej. '12 20 14 23 08 19 '), y cree objetos de la clase' Período (int start, int end) '. Me gustaría almacenar estos objetos en una matriz, así que ...

Antecedentes Supongamos que tenemos una relación bidireccional OneToOne. Hay entidad de usuario y dirección. El usuario tiene muchas direcciones. CREAR SECUENCIA SI NO EXISTE hibernate_sequence; CREAR TABLA de usuarios (...