返される値を収集する文字列変数なしで "toString"メソッドを呼び出すとどうなりますか? 例:ここでは疲れた2つのコードスニペットを示します。最初のものは正しい答えを出し、2番目のものは間違った答えを与えますが、それでもコンパイルします。 "toString"メソッドが値を返すためのものであれば、2番目のコードブロックに対してコンパイラエラーが発生しませんか?文字列バッファメソッド "toString"
StringBuffer sb=new StringBuffer(s); //s is a string input taken from user
sb.reverse();
String rev=sb.toString();
if(s.equals(rev)){
System.out.println("yes");
/*second try*/
StringBuffer sb=new StringBuffer(s);
sb.reverse();
sb.toString();//what is happening here?
if(s.equals(sb)){
System.out.println("yes");
Javaは戻り値を取得するかどうかは気にしません。メソッドを実行しただけで、結果は何もしません。 – mike
'StringBuffer'は' String'と決して等しくありません。あなたはDocsを読んで、 'equals'がどのように指定されているかを学んでください。 – ControlAltDel
' if(s.equals(sb)){'あなたは' String'と 'StringBuffer'を比較できません。私はあなたができることを意味しますが、それはリンゴとオレンジを比較するようなものです。他の人が指摘しているように、Javaは戻り値を取得するかどうかは気にしません。私はあなたが今理解してくれることを願っています – rafid059