Java Language Cambiando el caso de los personajes dentro de una cadena


Ejemplo

El tipo de String proporciona dos métodos para convertir cadenas entre mayúsculas y minúsculas:

  • toUpperCase para convertir todos los caracteres a mayúsculas
  • toLowerCase para convertir todos los caracteres a minúsculas

Estos dos métodos devuelven las cadenas convertidas como nuevas instancias de String : los objetos de String originales no se modifican porque la String es inmutable en Java. Vea esto para más información sobre la inmutabilidad: Inmutabilidad de las cadenas en Java

String string = "This is a Random String";
String upper = string.toUpperCase();
String lower = string.toLowerCase();

System.out.println(string);   // prints "This is a Random String"
System.out.println(lower);    // prints "this is a random string"
System.out.println(upper);    // prints "THIS IS A RANDOM STRING"

Los caracteres no alfabéticos, como los dígitos y los signos de puntuación, no se ven afectados por estos métodos. Tenga en cuenta que estos métodos también pueden tratar incorrectamente con ciertos caracteres Unicode bajo ciertas condiciones.


Nota : estos métodos son sensibles a la configuración regional y pueden producir resultados inesperados si se utilizan en cadenas que deben interpretarse independientemente de la configuración regional. Algunos ejemplos son los identificadores de lenguaje de programación, las claves de protocolo y las etiquetas HTML .

Por ejemplo, "TITLE".toLowerCase() en una configuración regional turca devuelve " tıtle ", donde ı (\u0131) es el carácter LATIN SMALL LETTER DOTLESS I. Para obtener resultados correctos para las cadenas no sensibles al entorno local, pase Locale.ROOT como parámetro al método de conversión de casos correspondiente (por ejemplo, toLowerCase(Locale.ROOT) o toUpperCase(Locale.ROOT) ).

Aunque el uso de Locale.ENGLISH también es correcto para la mayoría de los casos, el idioma invariable es Locale.ROOT .

Puede encontrar una lista detallada de los caracteres Unicode que requieren una carcasa especial en el sitio web de Unicode Consortium .

Cambio de caso de un carácter específico dentro de una cadena ASCII:

Para cambiar el caso de un carácter específico de una cadena ASCII, se puede utilizar el siguiente algoritmo:

Pasos:

  1. Declara una cuerda.
  2. Introduzca la cadena.
  3. Convertir la cadena en una matriz de caracteres.
  4. Introduzca el carácter que se va a buscar.
  5. Busque el carácter en la matriz de caracteres.
  6. Si lo encuentra, verifique si el carácter está en minúscula o en mayúscula.
    • Si está en mayúsculas, agregue 32 al código ASCII del carácter.
    • Si es minúscula, resta 32 del código ASCII del carácter.
  7. Cambiar el carácter original de la matriz de caracteres.
  8. Convertir la matriz de caracteres de nuevo en la cadena.

Voila, se cambia el caso del personaje.

Un ejemplo del código para el algoritmo es:

Scanner scanner = new Scanner(System.in);
System.out.println("Enter the String");
String s = scanner.next();
char[] a = s.toCharArray();
System.out.println("Enter the character you are looking for");
System.out.println(s);
String c = scanner.next();
char d = c.charAt(0);

for (int i = 0; i <= s.length(); i++) {
    if (a[i] == d) {
        if (d >= 'a' && d <= 'z') {
            d -= 32;
        } else if (d >= 'A' && d <= 'Z') {
            d += 32;
        }
        a[i] = d;
        break;
    }
}
s = String.valueOf(a);
System.out.println(s);