0

このコードで:

  public static void main(String[] args) {

    String s = "Java";
    StringBuilder buffer = new StringBuilder(s);
    change(buffer);

       System.out.println("What's strBuf.charAt(5)? " + strBuf.charAt(3));
       System.out.println(buffer);
  }

     private static void change(StringBuilder buffer) {

          buffer.append(" and HTML");
  }

StringBuilder を使用してコードを実行すると、エラー メッセージが表示されます

 The constructor StringBuilder(String) is undefined
    The method charAt(int) is undefined for the type StringBuilder

代わりに StringBuffer を試してみましたが、うまくいきました。StringBuffer オブジェクトの内容は、「Java and Eclipse..」にコンパイルされます。

  public static void main(String[] args) {

    String s = "Java";
    StringBuffer strbuf = new StringBuffer(s);
    change(strbuf);

               System.out.println("The Stringbuffer.charAt(5) is ? " + strbuf.charAt(3));
           System.out.println(strbuf);
 }

       private static void change(StringBuffer strbuf) {

                       strbuf.append(" and Eclipse");
 }

}

4

3 に答える 3

0

クラス名を次のように定義していないことを確認してくださいStringBuilder

例:正しくインポートしても

 import java.lang.StringBuilder;

しかし、クラスを次のように書くと

 public class StringBuilder { //If class name matches below Object Creation
 public static void main(String[] args) {

String s = "Java";
StringBuilder buffer = new StringBuilder(s);  //Object creation
change(buffer);

   System.out.println("What's strBuf.charAt(5)? " + strBuf.charAt(3));
   System.out.println(buffer);
}

 private static void change(StringBuilder buffer) {

      buffer.append(" and HTML"); //you will get this error at append
  //The method append(String) is undefined for the type StringBuilder
} 
}

提案

クラス名を別の名前に変更しますが、変更しないでください StringBuilder

于 2015-10-19T13:42:46.270 に答える