文字列に入力を受け取り、文字列にアンダースコアが含まれている場合は、その書式を変更するプログラムを作成しています。たとえば、「here_wego」という文字列を受け取った場合、「hereWego」が返されますが、その代わりに「herewego」が返されます。私がここでやろうとしたことは、入ってくる文字列を文字配列に変換し、各文字をチェックしてアンダースコアであるかどうかをチェックすることです。 がのアンダースコアでない場合、文字が出力文字列に追加されます。 がのアンダースコアの場合、文字は追加されず、代わりにc [i + 1]を大文字に変更して次のイテレータに追加する必要があります。char配列の値が大文字に変更されていない
public static String zebulansNightmare(final String functionName) {
String manip = "";
char[] c = functionName.toCharArray();
for(int i = 0; i < c.length; i++){
if(c[i]!='_'){
manip += c[i];
} else {
Character.toUpperCase(c[i+1]);
}
}
return manip;
}
私には、デバッグプロセスの図へのリンクが含まれています。
Going through the program debugging
'Character.toUpperCase(C [I + 1]だった場合は、例外をスローしますけれども今私は、正しい出力を得ます); 'は実際に' c [i + 1] 'を変更しません:単に大文字の' char'を返します。また、 'String.toCharArray()'の呼び出しに起因する 'char []'を変更しても、文字列は変更されません。 '新しいString(c);を返す必要があります。 –
'char'はプリミティブです。これは不変です。 'Character.toUpperCase(c [i + 1])'は渡された 'char'の大文字のバージョンである新しい' char'を返します。これを破棄します。 –
@AndyTurner私は、OPがsome_snake_case_stringを大文字の文字列に変更したいと考えています。 –