如何在java中使用StringBuffer获取用户输入?

时间:2017-05-04 16:24:51

标签: java string

我尝试了这段代码,但它无效

import java.util.*;
class StringBuffer
{
    public static void main(String[] args)
    {
        StringBuffer Name1=new StringBuffer();
        Scanner in=new Scanner(System.in);
        System.out.println("Enter a string: ");
        Name1.append(in.nextLine());
        System.out.println(Name1);
    }
}

如果StringBuffer是定义的,那么它的工作原理。但它无法从用户那里获取信息。

4 个答案:

答案 0 :(得分:1)

您的代码是正确的,但类名是错误的。更改您的班级名称并运行它。

答案 1 :(得分:1)

您使用的是class StringBuffer,它已经是Java中的内置类。
参考:Oracle doc

当您在自定义类StringBuffer Name1=new StringBuffer();中实例化StringBuffer之类的对象时,它会创建一个对象,并引用您自定义的类StringBuffer

您需要创建一个内置StringBuffer class的Java对象。

将您的类名更改为其他名称或使用StringBuilder,这不是线程安全但比StringBuffer更快。

此外,使用Scanner课程阅读您的输入 How can I read input from the console using the Scanner class in Java?

答案 2 :(得分:0)

StringBufferjava.lang包中的预定义类,您尝试使用该类,但是当您的类的名称与它发生冲突时,它会使用您的类定义而不是预定义的类。

此处Name1.append(in.nextLine());您调用的append方法未被您的类实现,因此会引发错误cannot find symbol。 将您的班级名称更改为独特的名称,您就可以开始了。输入没有错。

答案 3 :(得分:0)

无论是否使用StringBuffer,都无需更改类名。 但是在你的课堂上做一个改变。当然它会从用户端获取输入

public class StringBuffer {

    public static void main(String[] args) {
        java.lang.StringBuffer Name1 = new java.lang.StringBuffer();
        Scanner in=new Scanner(System.in);
        System.out.println("Enter a string: ");
        Name1.append(in.nextLine());
        System.out.println(Name1);
    }
}

它将解决您的问题。