J'ai une base de données qui stocke les chaînes écrites par les gens. Ces chaînes par exemple définissent le nom des films.
Afin de surmonter les doublons et d'autres choses, je l'ai fait, peu importe ce que l'utilisateur a tapé, il mettra chaque première lettre en majuscule. De cette manière, toutes les chaînes seront enregistrées de la même manière.
La façon dont je le fais est d'utiliser:
String[] words = query.split( "\\s+" );
for (int i = 0; i < words.length; i++) {
String Word = words[i].replaceAll( "[^\\w]", "" );
words[i] = Word.substring( 0, 1 ).toUpperCase() + Word.substring( 1 );
}
query = TextUtils.join( " ", words );
Cependant, j'ai rencontré un problème lorsque j'ai essayé de taper quelque chose comme: Tom & Jerry.
Dans ce cas, j'ai eu une erreur avec le &
. Dois-je simplement définir des conditions pour vérifier chaque lettre, telles que &, (, ), $
et ainsi de suite?
toUpperCase
gère très bien les caractères autres que des lettres et renvoie simplement le même caractère. Le problème avec votre code est qu'il suppose que chacun word
est non vide, ce qui n'est plus vrai une fois que vous avez supprimé les caractères spéciaux.
Pour faire une histoire courte, gardez simplement les caractères spéciaux, et vous devriez être OK:
for (int i = 0; i < words.length; i++) {
String word = words[i];
words[i] = word.substring( 0, 1 ).toUpperCase() + word.substring( 1 );
}
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots