Een char naar hoofdletters converteren

hoe krijg ik de variabelen F en L omgezet in hoofdletters.


Antwoord 1, autoriteit 100%

U kunt Character#toUpperCase()hiervoor.

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

Het heeft echter enkele beperkingen, aangezien de wereld zich bewust is van veel meer tekens dan ooit in het 16-bits char-bereik passen. Zie ook het volgende fragment van de javadoc:

Opmerking: deze methode kan geen aanvullende tekens aan . Om alle Unicode-tekens te ondersteunen, inclusief aanvullende tekens, gebruikt u de toUpperCase(int)methode.


Antwoord 2, autoriteit 25%

In plaats van bestaande hulpprogramma’s te gebruiken, kunt u onderstaande conversie proberen met behulp van booleaanse bewerking:

Naar hoofdletters:

char upperChar = 'l' & 0x5f

Naar kleine letters:

  char lowerChar = 'L' ^ 0x20

Hoe het werkt:

Binaire, hexadecimale en decimale tabel:

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

Laten we een voorbeeld nemen van een kleine conversie van lnaar l:

De binaire AND-bewerking: (l & 0x5f)

l-teken heeft ASCII108 en 01101100is binaire representatie.

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

Vergelijkbaar met de lnaar lconversie:

De binaire XOR-bewerking: (L ^ 0x20)

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

Antwoord 3, autoriteit 12%

Bekijk de klasse java.lang.Character, deze biedt veel handige methoden om tekens te converteren of te testen.


Antwoord 4, autoriteit 10%

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

Antwoord 5, autoriteit 3%

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

Antwoord 6, autoriteit 2%

Omdat je weet dat de tekens kleine letters zijn, kun je de bijbehorende ASCII-waarde aftrekken om ze in hoofdletters te maken:

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

Hier is een ASCII tafel Ter referentie


Antwoord 7

Als u de Apache Commons Lang Jar in uw project inclusief bent dan de gemakkelijkste oplossing zou zijn:

WordUtils.capitalize(Name)

zorgt voor al het vuile werk voor u.
Zie de Javadoc hier

U hebt alternatief, u hebt ook een kapitalistvol (string) -methode die ook de rest van de personages onder de lagere gevallen verlagen.


Antwoord 8

U kunt de .touppercase () rechtstreeks op stringvariabelen of als een kenmerk op tekstvelden toepassen. Ex: –

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

Antwoord 9

Ik denk dat u probeert het eerste en laatste teken van elk woord in een zin met ruimte als scheidingsteken te profiteren.

kan worden gedaan via 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();
}

Antwoord 10

De gemakkelijkste oplossing voor uw geval – verander de eerste regel, laat het precies het tegenovergestelde doen:

String lower = Name.toUpperCase ();

Natuurlijk is het de moeite waard om de naam ook te veranderen.

Other episodes