Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何创建显示字符串数组的方法_Java_Arrays_String - Fatal编程技术网

Java 如何创建显示字符串数组的方法

Java 如何创建显示字符串数组的方法,java,arrays,string,Java,Arrays,String,我试图编写一个类来构造一个包含特定字符串值的数组,我还想在同一个类中创建一个显示数组值的方法。这是我到目前为止所拥有的 import java.util.Arrays; public class Courses { private int next; String [] studentArray; String classList; public Courses () { String[] studentArray = ne

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

    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;
    }

}
导入java.util.array;
公共课
{
私有int next;
字符串[]学生阵列;
字符串类列表;
公共课程()
{
String[]studentArray=新字符串[11];
学生阵列[0]=“CSCI 0066”;
学生阵列[1]=“化学003B”;
学生阵列[2]=“HUM 0002”;
学生阵列[3]=“数学0032”;
studentArray[4]=“CHEM 003Y”;
学生阵列[5]=“数学0031”;
学生阵列[6]=“CSCI 0026”;
学生阵列[7]=“PHYS 0105L”;
学生阵列[8]=“PHYS 0105”;
学生阵列[9]=“CSCI 0013”;
学生阵列[10]=“英语001C”;
next=0;
}
公共字符串displayCourses()
{
for(int i=0;i
尝试打印,而不是覆盖并返回:

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

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

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

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

StringBuffer sb = new StringBuffer();
public String displayCourses(){
    for (int i = 0; i < studentArray.length; i++){
        sb.append(studentArray[i]+"\n");
    }
    return sb.toString();
 }
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 stringbuilder添加所有值并作为字符串返回

在显示方法中,您可以使用Java stringbuilder添加所有值并作为字符串返回

简单的方法:使用+=表示结果字符串:

classList += 
在这个for循环中。但当然,更有效的方法是使用StringBuilder

或者使用Arrays类中的内置方法将数组转换为字符串

并记录在案:

  • 方法名printClasses()表示此方法打印数组内容。在这种情况下:只需打印每一行
  • 或者将该方法重命名为GetClasseSassString(),例如,以表示该方法应该执行的操作
最简单的方法是:使用+=连接结果字符串:

classList += 
在这个for循环中。但当然,更有效的方法是使用StringBuilder

或者使用Arrays类中的内置方法将数组转换为字符串

并记录在案:

  • 方法名printClasses()表示此方法打印数组内容。在这种情况下:只需打印每一行
  • 或者将该方法重命名为GetClasseSassString(),例如,以表示该方法应该执行的操作
您的
课程
构造函数实际上创建了
学生阵列
的局部阴影,因此您应该删除
字符串[]
。此外,还可以内联声明数组。我还建议您重写
toString()
,而不是创建自己的方法
display
,该方法返回
字符串。假设您使用的是Java8+,那么您可能会使用
收集器。大概

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

    public Courses() {
        studentArray = new String[] { "CSCI 0066", "CHEM 003B", 
                "HUM 0002", "MATH 0032", "CHEM 003Y", "MATH 0031",
                "CSCI 0026", "PHYS 0105L", "PHYS 0105", "CSCI 0013", "ENGL 001C" };
        next = 0;
    }

    @Override
    public String toString() {
        return Arrays.stream(studentArray).collect(Collectors.joining(", "));
    }
}

您的
Courses
构造函数实际上创建了
studentArray
的局部阴影,因此您应该删除
字符串[]
。此外,还可以内联声明数组。我还建议您重写
toString()
,而不是创建自己的方法
display
,该方法返回
字符串。假设您使用的是Java8+,那么您可能会使用
收集器。大概

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

    public Courses() {
        studentArray = new String[] { "CSCI 0066", "CHEM 003B", 
                "HUM 0002", "MATH 0032", "CHEM 003Y", "MATH 0031",
                "CSCI 0026", "PHYS 0105L", "PHYS 0105", "CSCI 0013", "ENGL 001C" };
        next = 0;
    }

    @Override
    public String toString() {
        return Arrays.stream(studentArray).collect(Collectors.joining(", "));
    }
}
使用

但是,在构造函数中,您创建了另一个名为
studentArray
的数组,该数组覆盖了原始数组,从而导致
NullPointerException

public Courses ()
{
   studentArray = new String[11];
   //..rest of the code
使用

但是,在构造函数中,您创建了另一个名为
studentArray
的数组,该数组覆盖了原始数组,从而导致
NullPointerException

public Courses ()
{
   studentArray = new String[11];
   //..rest of the code
公共一级{
私有int next;
字符串[]学生阵列;
字符串classList=null;
字符串d=null;
公众假期课程(){
String[]studentArray=新字符串[11];
学生阵列[0]=“CSCI 0066”;
学生阵列[1]=“化学003B”;
学生阵列[2]=“HUM 0002”;
学生阵列[3]=“数学0032”;
studentArray[4]=“CHEM 003Y”;
学生阵列[5]=“数学0031”;
学生阵列[6]=“CSCI 0026”;
学生阵列[7]=“PHYS 0105L”;
学生阵列[8]=“PHYS 0105”;
学生阵列[9]=“CSCI 0013”;
学生阵列[10]=“英语001C”;
for(int i=0;i”+类列表);
}
}
公共静态void main(字符串[]args){
一个o=新的一个();
o、 课程();
}
}
公共一级{
私有int next;
字符串[]学生阵列;
字符串classList=null;
字符串d=null;
公众假期课程(){
String[]studentArray=新字符串[11];
学生阵列[0]=“CSCI 0066”;
学生阵列[1]=“化学003B”;
学生阵列[2]=“HUM 0002”;
学生阵列[3]=“数学0032”;
studentArray[4]=“CHEM 003Y”;
学生阵列[5]=“数学0031”;
学生阵列[6]=“CSCI 0026”;
学生阵列[7]=“PHYS 0105L”;
学生阵列[8]=“PHYS 0105”;
学生阵列[9]=“CSCI 0013”;
学生阵列[10]=“英语001C”;
for(int i=0;i”+类列表);
}
}
公共静态void main(字符串[]args){
一个o=新的一个();
o、 课程();
}
}