以下の「有効な回文」の問題を解決しようとしています。 stringbufferを文字列に変換して小文字に変換すると、文字列はすべて小文字で表示されますが、s.charAt(i)を使って比較すると大文字になります。文字は小文字に変換されませんが、文字列にはすべて小文字が使用されます
public static void main(String []args){
String s = "aA";
String[] strings = s.split("[^A-Za-z0-9]");
StringBuffer sb = new StringBuffer();
for(int i =0; i<strings.length;i++){
sb.append(strings[i]);
}
String newString = sb.toString().toLowerCase();
System.out.println("New String "+newString);***// output : aa(lower case)***
for(int i =0; i<newString.length()/2;i++){
if(s.charAt(i) != s.charAt(newString.length()-i-1)){
System.out.println(s.charAt(i));//**output 'a**
System.out.println(s.charAt(newString.length()-i-1));//***output 'A'***
}
}
誰かが理由を説明できますか?
なぜでしょうか? 's'はこのコードでは常に' 'aA ''です。 –