java - 如何创建一个显示字符串数组的方法

标签 java arrays string

我正在尝试编写一个类来构造一个包含特定字符串值的数组,并且我还想在同一个类中创建一个方法来显示数组值。这是我目前所拥有的

    import java.util.Arrays; 

public class Courses
{
    private int next;
    String [] studentArray;
    String classList;


    public Courses ()
    {
        String[] studentArray = new String[11];
        studentArray[0] = "CSCI 0066";
        studentArray[1] = "CHEM 003B";
        studentArray[2] = "HUM 0002";
        studentArray[3] ="MATH 0032"; 
        studentArray[4] = "CHEM 003Y";
        studentArray[5] = "MATH 0031";
        studentArray[6] = "CSCI 0026";
        studentArray[7] = "PHYS 0105L"; 
        studentArray[8] = "PHYS 0105";
        studentArray[9] = "CSCI 0013";
        studentArray[10] = "ENGL 001C";
        next = 0;
    }

    public String displayCourses()
    {
        for (int i = 0; i < studentArray.length; i++)
        {
            classList = studentArray[i];
        }
      return classList;
    }

}

最佳答案

尝试打印而不是覆盖和返回:

  public void displayCourses(){
    for (int i = 0; i < studentArray.length; i++){
        System.out.println(studentArray[i]);
    }
 }

正如@GhostCat所说,直接打印是不好的做法,所以创建一个字符串并将所有数据追加到in中,然后返回如下:

String s = "";
public String displayCourses(){
    for (int i = 0; i < studentArray.length; i++){
        s += studentArray[i] + "\n";
    }
    return s;
 }

这也可以使用 StringBuffer(同步)或 StringBuilder(异步)来完成。

如@Shashwat 所述,使用 StringBuilder 会更高效,如下所示:

StringBuilder sb = new StringBuilder();
public String displayCourses(){
    for (int i = 0; i < studentArray.length; i++){
        sb.append(studentArray[i]+"\n");
    }
    return sb.toString();
 }

并使用StringBuffer:

StringBuffer sb = new StringBuffer();
public String displayCourses(){
    for (int i = 0; i < studentArray.length; i++){
        sb.append(studentArray[i]+"\n");
    }
    return sb.toString();
 }

正如@MadProgrammer 所建议的,这也可以使用 StringJoiner 来完成:

StringJoiner sj = new StringJoiner("\n");
public String displayCourses(){
   for (int i = 0; i < studentArray.length; i++){
       sj.add(studentArray[i]);
   }  
   retunr sj.toString();
}

是的!要摆脱 NullPointerException,请不要在构造函数中创建新数组。只需对其进行初始化即可。

String[] studentArray;
Course(){
    studentArray = new String[11];
    ...
    ...
}

关于java - 如何创建一个显示字符串数组的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43960464/

相关文章:

php - 将数组中的表单值插入数据库

php - 假设的串联困境

java - OpenShift:在 java 运行时更改 ConfigMap

java - 在 XPage 应用程序中使用 docx4j

arrays - 访问 PSCustomObject Powershell 内的对象数组

javascript - 字符串增量 : increment the last string by one

c++ - C++11 中没有 "sto{short, unsigned short}"函数?

java - 如何使用外部对象的按钮在组件上执行操作?

java - SOAP 请求 XML 中的 CDATA 部分

c++ - 如何在不使用循环的情况下快速打印由指向指针的指针组成的二维字符数组?