|
分類:[.NET 全般]
・小文字を大文字に、数字は'0','1','2'...を'9','8','7'...と反転させる。 ・ただし、'#'以降の文字は変換しない。 ・例として "Abc012_59F_#012Gh"を渡した場合の戻り値は "abc987_40f_#012Gh"となる。 String f3(String s){ StringBuilder sb = new StringBuilder(); boolean sharo = false for(int i=0; i<s.length(); i++){ char c = s.charAt(i); if(sharp){sb.append(c);} else{ if('a' <= c && c <= 'z'){c = (char)('A' + (c - 'a')); } else if('0' <= c && c <= '9'){c = (char)('0' - (c - '9')); } else if('#'==c){sharp = ture;} sb.append(c); } return sb.toString(); }
この時、if(sharp){sb.append(c);} はsharo = false だから大文字はそのまま出力されるのですか? それとelse if('#'==c){sharp = ture;}はどうしてsharp = ture;で#以降が出力されるのですか? もう1つif('a' <= c && c <= 'z'){c = (char)('A' + (c - 'a'));のsharはどんな意味ですか? 教えてください。お願いします。
|