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 l
naar l
:
De binaire AND-bewerking: (l & 0x5f)
l
-teken heeft ASCII108 en 01101100
is binaire representatie.
1101100
& 1011111
-----------
1001100 = 76 in decimal which is **ASCII** code of L
Vergelijkbaar met de l
naar l
conversie:
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.