这是我正在使用的代码
import java.util.Scanner;
import java.io.*;
import java.util.ArrayList;
public class Message{
Scanner input;
String emailLine = "";
String line;
ArrayList<String> email = new ArrayList<String>();
String emailString;
String sender;
String subject;
String emailMIN;
String[] newString;
StringBuilder emailStringBuilder = new StringBuilder();
public Message(String m)throws IOException{
File inFile = new File ("mail.txt");
input = new Scanner (inFile);
String message;
getEmails();
}
public void getEmails(){
while(input.hasNextLine()){
line = input.nextLine();
System.out.println("Test, line: " + line);
if(line.equals("<END>")){
System.out.println("Test, <END> reached");
System.out.println("Test, email String: " +
emailStringBuilder.toString());
email.add(emailStringBuilder.toString());
}
else{
emailStringBuilder.append("\n" + line);
}
}
}
我正在尝试将电子邮件ArrayList传递到另一个类,以便我可以将ArrayList的字符串拆分为单独的数组。我该怎么做呢?另外,一旦我进入另一个类,我如何访问ArrayList的每个元素并将每个元素分解为另一个ArrayList,每个元素由行分隔?
答案 0 :(得分:0)
首先,ArrayList
不是List
数组。在您的案例List
中,它只是String
个项目。
如果您想将ArrayList
传递给其他班级,您可以执行以下操作:
public class MyOtherClass {
public void doSomething(ArrayList<String> myList) {
// do something with "myList"
}
然后在你的Message
课程中:
MyOtherClass myClass = new MyOtherClass();
myClass.doSomething(email);
这有帮助吗?
注意强>
根据您对问题的编辑,我认为您并不完全了解ArrayList
的工作原理。它是不 List
Array
!它只是List
接口的数组实现,可以在某些任务中获得更好的性能。有关详细信息,请参阅the javadocs about ArrayList
修改强>
正如peeskillet建议的那样,你也可以在新课程中实例化一个Message
类对象并从那里获得ArrayList
,但是email
必须是一个公共字段。您的班级Message
或为email
声明一个getter方法。
编辑
由于您添加了更多问题:
您可以像这样查看ArrayList
的所有元素:
For (String nextString : email) {
System.out.println(nextString); // Or do whatever you want with it :)
}
答案 1 :(得分:0)
使用message.getEmails()
来接收您的电子邮件。
以下是示例代码
public class Message{
Scanner input;
String emailLine = "";
String line;
List<String> emails = new ArrayList<String>();
String emailString;
String sender;
String subject;
String emailMIN;
String[] newString;
StringBuilder emailStringBuilder = new StringBuilder();
public Message(String m)throws IOException{
File inFile = new File ("mail.txt");
input = new Scanner (inFile);
String message;
populateEmails();
}
public void populateEmails(){
while(input.hasNextLine()){
line = input.nextLine();
System.out.println("Test, line: " + line);
if(line.equals("<END>")){
System.out.println("Test, <END> reached");
System.out.println("Test, email String: " +
emailStringBuilder.toString());
emails.add(emailStringBuilder.toString());
}
else{
emailStringBuilder.append("\n" + line);
}
}
}
public List<String> getEmails() {
return emails;
}
}