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 puedo obtener la F y L variables convertido a mayúsculas.

  • Gracias por la ayuda tengo wat necesitaba
  • que parte de las respuestas a tu pregunta anterior que no entienden? Mi respuesta no contiene la respuesta a esta pregunta.
  • Puede usted aceptar BalusC la respuesta? Esto ayudará a los buscadores.
InformationsquelleAutor shep | 2010-09-12

10 Comentarios

  1. 136

    Puede utilizar Carácter#toUpperCase() para esto.

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

    Tiene sin embargo algunas limitaciones ya que el mundo es consciente de muchos de los personajes más que nunca se puede encajar en 16bit char gama. Ver también el siguiente fragmento de la javadoc:

    Nota: Este método no puede manejar los caracteres adicionales. Para apoyar a todos los caracteres Unicode, incluyendo caracteres adicionales, utilice el toUpperCase(int) método.

  2. 27

    Lugar de utilizar los servicios existentes, usted puede tratar de debajo de la conversión de uso de operación booleana:

    A mayúsculas:

     char upperChar = 'l' & 0x5f

    A minúsculas:

       char lowerChar = 'L' ^ 0x20

    Cómo funciona:

    Binario, hexadecimal y decimal de la tabla:

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

    Vamos a tomar un ejemplo de los pequeños l a L de conversión:

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

    l personaje tiene ASCII 108 y 01101100 es binario represenation.

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

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

    El binario de la operación XOR: (L ^ 0x20)

       1001100
    ^  0100000
    -----------
       1101100 = 108 in decimal which is **ASCII** code of l
    • Honestamente estoy sorprendido de que este cuenta con 7 votos. Mientras aplaudo el acercamiento inteligente, ser inteligente rara vez conduce a un código fácil de mantener, especialmente cuando se utiliza en lugar de un método integrado como Character.toUpperCase(). Los usuarios de este debe de entender que no va a manejar cualquier cosa que no sean ASCII.
    • este enfoque de trabajo con los no-ASCII caracteres así por ejemplo, ‘250’, sin embargo, algunos caracteres no ASCII no dar los resultados esperados.Su punto es correcto que los usuarios deben entender que el derecho de uso de este enfoque y debe usarse principalmente para el alfabeto inglés.
    • Creo que debe ser c | 0x20 en lugar de c ^ 0x20 para el menor caso. De lo contrario, si el personaje ya está en minúsculas, tu código va a convertir a mayúsculas
  3. 18

    Tener una mirada en el java.lang.Character clase, que proporciona una gran cantidad de métodos útiles para convertir o prueba de chars.

    • +1 me gusta las respuestas de los proveedores al usuario una referencia para ir a buscar la respuesta
    • -1, si tenemos en red para estudiantes que quitar uno de LO principales beneficios. No gastar enormes cantidades de tiempo siguientes pueblos referencias anidadas a través de los enlaces rotos.
  4. 4
    System.out.println(first.substring(0,1).toUpperCase()); 
    System.out.println(last.substring(0,1).toUpperCase());
    • Puede usted explicar su respuesta?
    • en primer lugar.substring(0,1) recuperará la subcadena que está en 0 índice de la cadena y, a continuación, aplicar el método toUpperCase a la cadena que le dará el primer carácter de la cadena en mayúsculas
    • Por favor, edita tu respuesta y agregar esta explicación.
  5. 2

    Si se están incluyendo los de apache commons lang jar en el proyecto que la solución más fácil sería hacer:

    WordUtils.capitalize(Name)

    se ocupa de todo el trabajo sucio por usted.
    Ver el javadoc aquí

    Alternativamente, usted también tiene un capitalizeFully(Cadena) método que también menor de los casos el resto de los personajes.

    • El enlace usted siempre da error 404!!!! se puede corregir??
    • Corregido, gracias por el aviso
  6. 2

    Ya que usted sabe que los caracteres son más bajas caso, usted puede deducir el valor ASCII para hacerlos mayúsculas:

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

    Aquí es un Tabla ASCII de referencia

    • Esto sólo funciona si la cadena se compone exclusivamente de caracteres ASCII. Idiomas como el francés, el griego, español, turco, etc, tienen caracteres que no son ASCII con superior/inferior de los formularios. Este enfoque no funciona en esos casos…
    • En realidad, este enfoque básico no el trabajo de la mayoría de los caracteres no-ASCII en francés, español, alemán… por ejemplo, é à ö û ñ … Así que si el OP sabe que él sólo tendrá que lidiar con tales caracteres, que pueden adherirse a este método para el bien de la simplicidad y rendimiento.
    • Haciendo cálculos con los personajes para cambiar el caso es uno de los peores hábitos, y por tanto, no del siglo 21! Hay más de caracteres ascii!
    • resuelto lo que yo estaba buscando
  7. 2

    Puede aplicar el .toUpperCase() directamente en las variables de Cadena o como un atributo de 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());
  8. 0

    Creo que usted está tratando de poner en mayúscula la primera y la última letra de cada palabra en una oración con el 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();
    }
  9. -1

    La solución más fácil para su caso de cambio de la primera línea, que vamos a hacer justo lo contrario:

    String lower = Name.toUpperCase ();

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

Dejar respuesta

Please enter your comment!
Please enter your name here