「Hello there everyone」のような文字列を「helloThereEveryone」に変換するメソッドの簡単な実装は何でしょうか。JavaME では、String および StringBuffer ユーティリティ操作のサポートはかなり制限されています。
17465 次
8 に答える
3
素早いプリミティブ実装。私はJ2MEの制限について何も知らないので、それが適合するか、いくつかのアイデアが得られることを願っています...
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);
複雑な大文字の追加を次のように置き換えることができます。
result.append((char) (c - 0x20));
もっとハックに見えるかもしれませんが。
于 2008-10-30T07:40:36.993 に答える
1
CDC を使用すると、次のことが可能になります。
String.getBytes();// 文字列をバイト配列に変換する String.indexOf(int ch); //単語の先頭を見つけるため String.trim();//スペースを削除するため
小文字/大文字の場合は、32 を加算 (減算) する必要があります。
これらの要素を使用して、独自のメソッドを構築できます。
于 2008-10-30T07:42:01.873 に答える
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;
}
于 2013-04-30T23:30:15.783 に答える
0
提案:
J2ME に 1 つの正規表現ライブラリを移植できれば、それを使用して String 内のスペースを取り除くことができます...
于 2008-10-30T07:40:05.167 に答える
0
次のコードを試してください
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;
}
于 2015-10-08T05:03:11.500 に答える
-1
次の簡単なコードをお勧めします。
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;
于 2012-07-11T13:04:26.737 に答える
-2
これをチェックして
import org.apache.commons.lang.WordUtils;
String camel = WordUtils.capitalizeFully('I WANT TO BE A CAMEL', new char[]{' '});
return camel.replaceAll(" ", "");
于 2012-06-18T18:51:31.430 に答える
-2
私は次のようにします:
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();
}
于 2012-05-08T12:05:32.253 に答える