Un método muy útil disponible para usted, se llama subcadena. Este método le permite captar un solo trozo de texto de otro. En nuestro programa de dirección de correo electrónico anterior, por ejemplo, podríamos agarramos los últimos cinco caracteres de la dirección y veamos si es co.uk.
Para practicar un poco con la subcadena, escribiremos un pequeño juego Nombre Swapper. Para este juego, queremos cambiar las dos primeras letras de un nombre de familia e intercambiarlos con las dos primeras letras de un nombre personal, y viceversa. Así que si tenemos este nombre:
"Bill Gates"
queremos cambiar la "Ga" de "puertas" con el "Bi" de "Bill" para hacer "Bites". El "Bi" de "Bill" entonces serán intercambiados con el "Ga" de "puertas" para hacer "Gall". El nuevo nombre se imprime sería: "Gall Bites"
Usaremos subcadena para la mayor parte de este programa. Subcadena funciona así:
Cadena FullName = "Bill Gates";
Cadena FirstNameChars = "";
Cadena FirstNameChars = "";
FirstNameChars FullName.substring = (0, 2);
Se configura una cadena a buscar, en este caso la cadena "Bill Gates". La cadena que está tratando de buscar va después de un signo igual. Después de un punto, escriba el nombre del método, subcadena. Hay dos formas de usar subcadena, y la diferencia está en los números entre los paréntesis. Tenemos dos números en el código anterior, 0 y 2. Esto significa empezar a agarrar caracteres en la posición 0 en la cadena, y dejar de agarrar cuando usted tiene dos de ellos. Los dos personajes se devuelven y se colocan en los FirstNameChars variables. Si siempre quiere ir hasta el final de la cadena, sólo puede hacer esto:
Prueba String = FullName.substring (2);
Esta vez, sólo tiene 1 número entre los paréntesis de la subcadena. Ahora, Java se iniciará a las dos en el carácter FirstName cadena, y luego agarrar los caracteres desde la posición 2 hasta el final de la cadena.
Iniciar un nuevo programa para probar esto. Añadir una línea de impresión hasta el final y el código debe ser la siguiente:
Cuando se ejecuta el programa, la ventana de salida debe ser similar a esto:
Así que el método substring nos ha permitido agarramos los dos primeros caracteres del nombre "Bill".
Para obtener los primeros caracteres, tuvimos un 0 y un 2 entre los paréntesis de la subcadena.Se podría pensar que para obtener el "Ga" de "puertas" que pudiéramos hacer esto:
= FullName.substring (5, 2);
Todavía queremos dos personajes, después de todo. Sólo que esta vez, el 5 sería decirle a Java que empezar desde el "G" de "puertas". (La primera posición en una cadena es la posición 0 no la posición 1.) Por lo tanto, comenzar en la posición 5 de la cadena y agarrar 2 caracteres.
Sin embargo, ejecutar ese código le conseguiría un error. Eso es debido a que el segundo número entre los paréntesis de la subcadena no significa el número de caracteres que desea tomar.Significa que la posición en la cadena que desea finalizar en. Al especificar 2 estamos contando Java para terminar en el carácter en la posición 2 de la cadena. Como no se puede pasar de la posición 6 hacia atrás a la posición 2 se produce un error en su lugar.
(NOTA: Si inicia el recuento a 0 en la cadena "Bill", se podría pensar que la posición 2 es la letra "L" y estaríamos en lo cierto, pero subcadena comienza antes del carácter en esa posición, no después de ella.. .)
Para obtener la "Ga" de "puertas", por lo tanto, usted puede hacer esto:
FullName.substring (5, FullName.length () - 3);
El segundo número es ahora la longitud de la cadena menos 3 caracteres. La longitud de una cadena es el número de caracteres que tiene. "Bill Gates" tiene 10 caracteres, incluyendo el espacio. Quita 3 y tiene 7. Así que estamos diciendo subcadena que empezar por el carácter 5 y finalizará a las 7 caracteres.
Y eso iba a funcionar perfectamente bien para las personas llamadas "Bill Gates". Pero el programa no funcionaría si nombre era, digamos, "Billy puertas". El código anterior sería luego tomar el carácter de espacio más la letra "G", que no es lo que queremos en absoluto. Queremos que el programa funcione lo que se introducen dos nombres. Así que tenemos que ser un poco inteligente.
Una cosa que podemos hacer es tener en cuenta la posición del espacio en los dos nombres. Los 2 personajes que queremos agarrar a partir del segundo nombre siempre vienen justo después de que el carácter de espacio. Queremos un código que agarra los dos primeros caracteres después del espacio.
Podemos utilizar indexOf señalar la posición del espacio:
int spacePos = FullName.indexOf ("");
Para especificar un carácter de espacio puede escribir un espacio entre dos comillas dobles (o comillas simples). Esto entonces va entre los paréntesis de indexOf. El valor devuelto será un entero, y es la posición de la primera aparición del carácter de espacio en el NombreCompleto cadena.
Pruebe a cabo mediante la adición de la línea anterior a su código: Agregar una línea de impresión para comprobar la salida:
Ejecute el programa para ver la siguiente salida:
Así que el espacio está en la posición 4 de la cadena. Podemos utilizar este hecho para apoderarse de los dos primeros caracteres de "Puertas", o de hecho cualquier segundo nombre.Le decimos a Java para ir desde el primer carácter después del espacio, y terminar en los próximos dos personajes:
FullName.substring (spacePos + 1, (spacePos + 1) + 2)
Así que los dos números entre los paréntesis de la subcadena son los siguientes:
spacePos + 1, (spacePos + 1) + 2
Queremos empezar en el primer carácter después del espacio (espacio + 1), y poner fin a dos personajes después de esta posición, que es (spacePos + 1) + 2.
Añada las siguientes líneas a su código (Los resaltados Nuestro nuevo método substring derrama en dos líneas, pero usted puede mantener su en uno, si lo prefiere.):
Al ejecutar el programa, la ventana de resultados es la siguiente:
Así que ahora tenemos el "Bi" de Bill y la "Ga" de Gates. Lo que ahora tenemos que hacer es conseguir el resto de los personajes de los dos nombres y, a continuación, intercambiar a su alrededor.
Una vez más, podemos usar subcadena para obtener los caracteres restantes del primer nombre:
OtherFirstChars String = "";
OtherFirstChars = FullName.substring (2, spacePos);
System.out.println (OtherFirstChars);
OtherFirstChars = FullName.substring (2, spacePos);
System.out.println (OtherFirstChars);
Y los caracteres de la segunda el nombre restante:
OtherSurNameChars String = "";
OtherSurNameChars = FullName.substring ((spacePos + 1) + 2,
FullName.length ());
OtherSurNameChars = FullName.substring ((spacePos + 1) + 2,
FullName.length ());
System.out.println (OtherSurNameChars);
No los números en entre los paréntesis de la subcadena. Para obtener los otros personajes nombre, los números son los siguientes:
2, spacePos
Esto le indica a Java para comenzar en la posición 2, y vaya a la derecha hasta la posición del espacio. Para obtener el resto del segundo nombre, sin embargo, que es un poco poco más complicado:
(spacePos + 1) + 2, FullName.length ()
El (spacePos1 + 1) + 2 es la posición de partida de la tercera carácter del segundo nombre.Queremos poner fin a la longitud de la cadena, que nos llevará el resto de los personajes.
Agregue la siguiente a su código (resaltado):
La salida es la siguiente:
Ahora tenemos todas las partes del nombre. Para unirse a ellos juntos, podemos utilizar la concatenación:
Añadir las nuevas líneas a su propio código. Al ejecutar el programa, la ventana de resultados debe mostrar lo siguiente:
Podemos deshacernos de las líneas de impresión, sin embargo, e invitar a un usuario que introduzca un nombre y segundo nombre. Aquí está el nuevo programa (la única adición es la entrada de teclado, que usted ha utilizado antes):
La ventana de salida debe ser algo como esto, cuando se ejecuta el programa e introduzca un nombre y apellido:
Debemos, por supuesto, añadir un poco de comprobación de errores. Pero vamos a suponer que el usuario puede introducir un nombre y apellido, con un espacio entre los dos. Si no es así, el programa se colgará! Vamos a seguir adelante, sin embargo, y echar un vistazo a la igualesmétodo.
No hay comentarios.:
Publicar un comentario