upper touppercase example java char uppercase

java - touppercase - Convertir un char en mayúsculas



character touppercase java example (10)

Como sabe que los caracteres están en minúsculas, puede restar el valor ASCII correspondiente para hacerlos en mayúsculas:

char a = ''a''; a -= 32; System.out.println("a is " + a); //a is A

Aquí hay una tabla ASCII para referencia

String lower = Name.toLowerCase(); int a = Name.indexOf(" ",0); String first = lower.substring(0, a); String last = lower.substring(a+1); char f = first.charAt(0); char l = last.charAt(0); System.out.println(l);

¿Cómo obtendría las variables F y L convertidas a mayúsculas?


Creo que estás tratando de poner en mayúscula el primer y último carácter de cada palabra en una oración con espacio como delimitador.

Se puede hacer a través de StringBuffer :

public static String toFirstLastCharUpperAll(String string){ StringBuffer sb=new StringBuffer(string); for(int i=0;i<sb.length();i++) if(i==0 || sb.charAt(i-1)=='' '' //for first character of string/each word || i==sb.length()-1 || sb.charAt(i+1)=='' '') //for last character of string/each word sb.setCharAt(i, Character.toUpperCase(sb.charAt(i))); return sb.toString(); }


Eche un vistazo a la clase java.lang.Character , proporciona muchos métodos útiles para convertir o probar caracteres.


En lugar de usar las utilidades existentes, puede intentar la conversión por debajo de la operación booleana:

A mayúsculas:

char upperChar = ''l'' & 0x5f

Para minúsculas:

char lowerChar = ''L'' ^ 0x20

Cómo funciona:

Tabla binaria, hexadecimal y decimal:

------------------------------------------ | Binary | Hexadecimal | Decimal | ----------------------------------------- | 1011111 | 0x5f | 95 | ------------------------------------------ | 100000 | 0x20 | 32 | ------------------------------------------

Tomemos un ejemplo de pequeña conversión de L a L :

El binario y la operación: (l & 0x5f)

l carácter tiene ASCII 108 y 01101100 es una representación binaria.

1101100 & 1011111 ----------- 1001100 = 76 in decimal which is **ASCII** code of L

Del mismo modo la conversión de L a l :

La operación XOR binaria: (L ^ 0x20)

1001100 ^ 0100000 ----------- 1101100 = 108 in decimal which is **ASCII** code of l


La solución más fácil para su caso: cambie la primera línea, deje que haga exactamente lo contrario:

String lower = Name.toUpperCase ();

Por supuesto, vale la pena cambiar su nombre también.


Puede aplicar el .toUpperCase () directamente en las variables de cadena o como un atributo a los campos de texto. Ex: -

String str; TextView txt; str.toUpperCase();// will change it to all upper case OR txt.append(str.toUpperCase()); txt.setText(str.toUpperCase());


Puede usar el Character#toUpperCase() para esto.

char fUpper = Character.toUpperCase(f); char lUpper = Character.toUpperCase(l);

Sin embargo, tiene algunas limitaciones, ya que el mundo es consciente de muchos más caracteres de los que pueden caber en el rango de caracteres de 16 bits. Vea también el siguiente extracto del Character#toUpperCase() :

Nota: este método no puede manejar caracteres suplementarios . Para admitir todos los caracteres Unicode, incluidos los caracteres complementarios, use el método toUpperCase(int) .


Si está incluyendo apache commons lang jar en su proyecto, la solución más sencilla sería hacerlo:

WordUtils.capitalize(Name)

Se encarga de todo el trabajo sucio por ti. Ver el javadoc here

Alternativamente, también tiene un método capitalizeFully (String) que también escribe en minúsculas el resto de los caracteres.


f = Character.toUpperCase(f); l = Character.toUpperCase(l);


System.out.println(first.substring(0,1).toUpperCase()); System.out.println(last.substring(0,1).toUpperCase());