ArrayListを引数とするメソッドを開発しています。 次に、このメソッドは配列に何らかの変更を加え、変換されたarrayListを返します。 入力配列は{A123、C123、15B2}のようになり、次の出力{Aa123、Cc123、15Bb2}を得たいと思います。既存のupperCaseに新しい値を追加するにはどうすればいいですか?
つまり、大文字の後に同じ小文字を追加する必要があります。
文字の順序と量があります。 Hkjk124、hy71のような文字列を得ることも可能です。
方法を以下に示します。
protected ArrayList<String> enrichValues(ArrayList<String> list) {
for (int i = 0; i < list.size(); i++) {
char[] charArray = list.get(i).toCharArray();
List<Character> listChars = new ArrayList<>();
for (char c : charArray) {
listChars.add(c);
}
for (int j = 0; j < listChars.size(); j++) {
if (listChars.get(j).charValue() == 'A') {
listChars.add(j + 1, 'a');
}
}
String newChar = "";
for (Character c : listChars)
newChar += c.toString();
list.set(i, newChar);
}
return list;
}
私が直面している主な問題は、私は文字が大文字であるかどうかを確認する方法がわからないということです。私はチェックの多くを追加する必要がありそのため
if(Character.isLetter(c) && Character.isUpperCase(c)) {
listChars.add(j + 1, 'a');
}
:
if (listChars.get(j).charValue() == 'B') {
listChars.add(j + 1, 'b');
}
if (listChars.get(j).charValue() == 'C') {
listChars.add(j + 1, 'c');
}
しかし、それは非常に悪いアプローチである は、私のようなものを適用することができませんでした。助けていただければ幸いです。
あなたはアルファベットのASCII値を使って大文字小文字をチェックすることができます – Kick
私は理解しません、どうして 'Character.isUpperCase(c)'メソッドを適用しなかったのですか? – Asew
String.charAt(i)とCharacter.toLower()を使って作業するとうまくいくと思います。私は私のために働くコードの例で以下に答えました。 – Assafs