文字の大文字を取得する場合は、文字列のtoUpperCaseではなく、Character.toUpperCase(c)
を使用する必要があります。
だから、私はあなたがこのような何かを探しているかもしれないと思う:
public static void main(String[] args) {
String alphabet = "abcdefghijklmnopqrstuvwxyzåäö";
System.out.println(alphabet);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < alphabet.length(); i++) {
char c = alphabet.charAt(i);
sb.append(i % 2 == 0 ? Character.toUpperCase(c) : c);
}
String result = sb.toString();
System.out.println(result);
}
出力:
abcdefghijklmnopqrstuvwxyzåäö
AbCdEfGhIjKlMnOpQrStUvWxYzÅäÖ
文字列は不変であるので、あなたはクレアしなければならないあなたが望むものを得るための新しいStringこれを行う効率的な方法は、StringBuilderを使用する方法です。
編集:
より直感的な方法は、それが可変になりcharの配列に文字列を変換することであるのStringBuilderなしで、おそらくそれを行うための別の方法。最後に、文字列に戻します。結果は次のようになります。
public static void main(String[] args) {
String alphabet = "abcdefghijklmnopqrstuvwxyzåäö";
System.out.println(alphabet);
char[] chars = alphabet.toCharArray();
for (int i = 0; i < alphabet.length(); i+=2) {
chars[i] = Character.toUpperCase(chars[i]);
}
String result = new String(chars);
System.out.println(result);
}
「String.toUpperCase」のドキュメントを見てきましたか?それは 'char'パラメータを受け取りますか?それがあった場合は、結果をどこにも使用していないので、メソッドに呼び出すことをどのように期待しますか? –
[JavaDoc](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#toUpperCase-java.util.Locale-)はあなたの友人です。 –
特定の*文字*を大文字に変換したい場合は、Characterクラスを使用するとよいでしょう。 https://docs.oracle.com/javase/7/docs/api/java/lang/Character.html#toUpperCase(char) –