Ce qui serait une implémentation simple d'une méthode pour convertir une chaîne comme "Bonjour à tous" en "helloThereEveryone". En Java, la prise en charge des opérations de l'utilitaire String et StringBuffer est assez limitée.JavaME: Convertir chaîne en camelCase
Répondre
mise en œuvre rapide primitive. Je ne sais pas de restrictions de J2ME, donc je l'espère s'intègre ou lui donne quelques idées ...
String str = "Hello, there, everyone?";
StringBuffer result = new StringBuffer(str.length());
String strl = str.toLowerCase();
boolean bMustCapitalize = false;
for (int i = 0; i < strl.length(); i++)
{
char c = strl.charAt(i);
if (c >= 'a' && c <= 'z')
{
if (bMustCapitalize)
{
result.append(strl.substring(i, i+1).toUpperCase());
bMustCapitalize = false;
}
else
{
result.append(c);
}
}
else
{
bMustCapitalize = true;
}
}
System.out.println(result);
Vous pouvez remplacer les majuscules alambiquée append avec:
result.append((char) (c - 0x20));
bien qu'il puisse sembler plus hackish.
Suggestion:
Peut être si vous pouvez port one regexp library on J2ME, vous pouvez l'utiliser pour enlever les espaces dans votre chaîne ...
Bonne suggestion, mais problématique en raison de problèmes de licence. – Ciryon
N'effectuera pas l'opération camel-case, cependant. –
Avec CDC, vous avez:
String.getBytes(); // pour convertir la chaîne en un tableau d'octets String.indexOf (int ch); // pour localiser le début des mots String.trim(); // pour supprimer les espaces
Pour moins/majuscules, vous devez ajouter (soustrayez) 32.
Avec ces éléments, vous pouvez construire votre propre méthode.
je le ferais comme ceci:
private String toCamelCase(String s) {
StringBuffer sb = new StringBuffer();
String[] x = s.replaceAll("[^A-Za-z]", " ").replaceAll("\\s+", " ")
.trim().split(" ");
for (int i = 0; i < x.length; i++) {
if (i == 0) {
x[i] = x[i].toLowerCase();
} else {
String r = x[i].substring(1);
x[i] = String.valueOf(x[i].charAt(0)).toUpperCase() + r;
}
sb.append(x[i]);
}
return sb.toString();
}
Cocher cette
import org.apache.commons.lang.WordUtils;
String camel = WordUtils.capitalizeFully('I WANT TO BE A CAMEL', new char[]{' '});
return camel.replaceAll(" ", "");
Expliquer votre code aiderait OP et éventuellement vous. –
Je suggère le code simple suivant:
String camelCased = "";
String[] tokens = inputString.split("\\s");
for (int i = 0; i < tokens.length; i++) {
String token = tokens[i];
camelCased = camelCased + token.substring(0, 1).toUpperCase() + token.substring(1, token.length());
}
return camelCased;
Pourquoi la downvote? –
@AustinHenley - Je pense que cela ne fonctionne pas. Et si vous aviez AIR FOIL en entrée? Quelle serait la sortie? D'après mes lectures, ce serait AIRFOIL. Ce qui semble faux. – Cheeso
private static String toCamelCase(String s) {
String result = "";
String[] tokens = s.split("_"); // or whatever the divider is
for (int i = 0, L = tokens.length; i<L; i++) {
String token = tokens[i];
if (i==0) result = token.toLowerCase();
else
result += token.substring(0, 1).toUpperCase() +
token.substring(1, token.length()).toLowerCase();
}
return result;
}
Essayez le code suivant
public static String toCamel(String str) {
String rtn = str;
rtn = rtn.toLowerCase();
Matcher m = Pattern.compile("_([a-z]{1})").matcher(rtn);
StringBuffer sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, m.group(1).toUpperCase());
}
m.appendTail(sb);
rtn = sb.toString();
return rtn;
}
- 1. Convertir CamelCase à under_score_case en php __autoload()
- 2. asp.net Convertir une chaîne CSV en chaîne []
- 3. Convertir la chaîne en SecureString
- 4. Convertir une chaîne en streaming
- 5. Convertir une chaîne en CLLocationCoordinate2D
- 6. Convertir une chaîne en .net
- 7. JavaME internationalisation (i18n)
- 8. Convertir un nombre en Excel en chaîne?
- 9. Comment convertir une chaîne strings en chaîne en C++?
- 10. makefile camelcase pattern matching
- 11. SQL Server convertir la chaîne en datetime
- 12. Comment convertir une chaîne en CharSequence?
- 13. Convertir une chaîne en tableau (android)
- 14. Comment convertir une chaîne en TimeSeriesDataItem
- 15. comment convertir la chaîne en datetime
- 16. convertir la chaîne en char c
- 17. .NET/C# - Convertir char [] en chaîne
- 18. Convertir une chaîne en code C++
- 19. Comment convertir chaîne à LPWSTR en C++
- 20. Convertir une chaîne en double - Java
- 21. convertir la chaîne en long long
- 22. Convertir la chaîne en double - VB
- 23. Comment convertir une variable en chaîne?
- 24. convertir les listes imbriquées en chaîne
- 25. Comment convertir un tableau d'octets en chaîne?
- 26. mssql_bind chaîne vide convertir en NULL
- 27. Comment convertir une chaîne en OctetString (C#)?
- 28. Convertir un nombre en chaîne binaire
- 29. convertir chaîne de format .net en format java chaîne
- 30. Convertir une chaîne de base25 à chaîne binaire en Java
Bonne solution, merci! – Ciryon
Certaines implémentations J2ME ont des extensions pour les jeux de caractères alternatifs. Si cela est un problème, vous devez vraiment suivre les recommandations de la plate-forme pour l'assemblage, de sorte que l'astuce char math ne fonctionnera pas sur ces jeux de caractères. –
Je suggère d'éviter de créer de nouvelles chaînes ici result.append (strl.substring (i, i + 1) .toUpperCase()); Et utilisez result.append (Character.toUpperCase (c)); à la place – user655419