Java - Como obtener el primer y último carácter de una cadena

 
Vista:
Imágen de perfil de Karl

Como obtener el primer y último carácter de una cadena

Publicado por Karl (18 intervenciones) el 12/12/2022 18:54:07
buen día,
Tengo una duda al crear un método con retorno para obtener el primer y ultimo carácter o dígito y al imprimirlo muestre el primer dato(asterisco) ultimo dato.

Ejemplo 123456789
1*******9
igual con una cadena de texto

public String mostrarPrimerUltimoCaracter(@PathParam("texto") String texto){

String str1="*"; // caracter a sustituir / * /
char primerElemento=texto.charAt(0);
char ultimoElemento=texto.charAt(texto.length()-1);


for (int i=0; i<texto.length();i++){
if (texto.length() >= 2){

texto.replaceAll("[0-8]","*");


} else{
System.err.println("\nNo se permite\n");
}

}
return texto.substring(0,texto.length()-1);
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Como obtener el primer y último carácter de una cadena

Publicado por Kabuto (1381 intervenciones) el 13/12/2022 11:22:04
Hola.

No sería necesario ningún bucle.
Lo que podemos hacer es "diseccionar" la cadena origen en tres partes: el primer carácter, el último, y la cadena central.

Esta cadena central es la que hay que reemplazar por asteriscos.

Así que solo queda retornar la concatenación de esas tres partes, solo que la cadena central será reemplazada por asteriscos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class Ocultar {
 
	public static void main(String[] args) {
 
		String ejemplo = "123456789";
 
		System.out.println("Cadena origen: " + ejemplo);
		System.out.println("Cadena ocultada: " + mostrarPrimerUltimoCaracter(ejemplo));
	}
 
	public static String mostrarPrimerUltimoCaracter(String cadena) {
 
		if (cadena.length() < 3) {
			System.err.println("\nNo se permite\n");
			return null;
		}
		else {
			String primero = cadena.substring(0, 1);
			String ultimo = cadena.substring(cadena.length() - 1, cadena.length());
			String centro = cadena.substring(1, cadena.length() - 1);
			return primero + centro.replaceAll("[0-9]", "*") + ultimo;
		}
	}
 
}

Esto sirve si la cadena origen solo va a tener cifras de 0 a 9.
1
centro.replaceAll("[0-9]", "*")

Si queremos que sirva para cualquier carácter, sean cifras o letras, basta con cambiar la expresión regular por un "punto", que representa a cualquier carácter, sea el que sea.
1
centro.replaceAll(".", "*")


Ejemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class Ocultar {
 
	public static void main(String[] args) {
 
		String ejemplo = "sin3st3si4";
 
		System.out.println("Cadena origen: " + ejemplo);
		System.out.println("Cadena ocultada: " + mostrarPrimerUltimoCaracter(ejemplo));
	}
 
	public static String mostrarPrimerUltimoCaracter(String cadena) {
 
		if (cadena.length() < 3) {
			System.err.println("\nNo se permite\n");
			return null;
		}
		else {
			String primero = cadena.substring(0, 1);
			String ultimo = cadena.substring(cadena.length() - 1, cadena.length());
			String centro = cadena.substring(1, cadena.length() - 1);
			return primero + centro.replaceAll(".", "*") + ultimo;
		}
	}
 
}


Resultado en pantalla:
1
2
Cadena origen: sin3st3si4
Cadena ocultada: s********4
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar