从GUI拆分数组

时间:2015-12-07 14:55:31

标签: java arrays

如何分割数组?这是一个addStudent方法,它接收从GUI中采取,采取,采取的一系列课程。

public void addStudent(String firstName, String lastName, String phone, String address, double gpa, String major, String[] haveTaken, String[] taking, String[]toBeTaken, int crdit){
        String[] taken = haveTaken.split(","); //this part screams at me
        Person temp = 
           new Student(firstName, lastName, phone, address, gpa, major, haveTaken, taking, toBeTaken, credit);
        p.add(temp);
    }

1 个答案:

答案 0 :(得分:1)

或......也许您正在寻找的是这样的:

String[] taken = Arrays.toString(hasTaken).replace("[","").replace("]","").split(", ");

split()参数中逗号后面的空格不是拼写错误。 Arrays.toString()方法在每个分隔符后面放置一个空格。

修改

好的詹姆斯,我刚注意到你的评论:

  

我正在使用GUI输入数据。收到数据后    haveTaken.getText(),必须是Array String of courses   分裂。如[CST141,CST161,CST323]。

这是一个混乱,您将名为 hasTaken addStudent()方法的参数声明为字符串数组,但在您的评论中,您告诉使用的是来自支持 .getText()方法的GUI组件的数据,可能是JTextField。但是你再次向我们展示了一串数据,它实际上是 Arrays.toString()方法([CST141,CST161,CST323])的返回输出。

这是什么???

haveTaken 变量实际上是一个String Array变量,还是一个GUI组件的变量名?

如果 haveTaken 实际上是一个字符串数组变量,那么上面发布的代码将对您有用,但是有一些更明确的方法可以将一个数组内容复制到另一个数组中,就像使用' for loop ', .clone() System.arraycopy() Arrays.copyOf()

但是,如果 haveTaken 变量表示GUI组件的变量名称,并且您正在调用该组件中提供的分隔文本,则表示...然后停止这样做并停止 将该组件中的文本表示为 addStudent()方法的String Array参数。 它应该是:....,String haveTaken,.... ....,String [] haveTaken,....现在答案也会改变,因为你可以采取格式化预防措施在执行斯普利特之前需要采取。如果没有提供一个或多个逗号分隔符怎么办?在每个逗号分隔符之前或之后放置的空格(可能是几个)?此格式化应在数据输入级别完成,以确保处理的格式一致。

我非常怀疑您希望用户以文本字段组件的形式提供数据: [CST141,CST161,CST323] 。如果你那么......也要停止它,因为它容易出现输入错误。但是,如果文本字段组件中提供的数据采用这种方式:CST141,CST161,CST323,那么您最初尝试拆分应该有效。

以下是我确定大家都想知道的一个重要问题:"为什么要拆分字符串数组?" 知道这肯定会给你满意的结果。