JavaME: Converter String para camelCase

votos
1

O que seria uma simples implementação de um método para converter uma string como Olá a todos para helloThereEveryone. Em apoio JavaME para operações de serviços públicos String e StringBuffer são bastante limitadas.

Publicado 30/10/2008 em 08:16
fonte usuário
Em outras línguas...                            


8 respostas

votos
3

implementação primitivo rápido. Eu não tenho idéia de restrições de J2ME, então eu espero que ele se encaixa ou dá algumas idéias ...

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);

Você pode substituir a maiúsculas complicado anexar com:

result.append((char) (c - 0x20));

embora possa parecer mais hackish.

Respondeu 30/10/2008 em 08:40
fonte usuário

votos
1
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;
}
Respondeu 01/05/2013 em 00:30
fonte usuário

votos
1

Com CDC, você tem:

String.getBytes (); // para converter a cadeia de uma matriz de bytes String.indexOf (CH int); // para localizar o início do palavras String.trim (); // para remover espaços

Para inferior / maiúsculas que você precisa adicionar (subtrair) 32.

Com estes elementos, você pode construir seu próprio método.

Respondeu 30/10/2008 em 08:42
fonte usuário

votos
0

Tente seguinte código

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;
}
Respondeu 08/10/2015 em 05:03
fonte usuário

votos
0

Sugestão:

Pode ser se você pode porta de biblioteca um regexp com o J2ME , você pode usá-lo para retirar espaços na cadeia ...

Respondeu 30/10/2008 em 08:40
fonte usuário

votos
-1

Gostaria de sugerir o seguinte código simples:

    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;
Respondeu 11/07/2012 em 14:04
fonte usuário

votos
-2

verificar isso

import org.apache.commons.lang.WordUtils;

String camel = WordUtils.capitalizeFully('I WANT TO BE A CAMEL', new char[]{' '});

return camel.replaceAll(" ", "");
Respondeu 18/06/2012 em 19:51
fonte usuário

votos
-2

Gostaria de fazê-lo como este:

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();
}
Respondeu 08/05/2012 em 13:05
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more