gpt4 book ai didi

java - 如何将变量从使用 Scanner 的类传递到主类?

转载 作者:行者123 更新时间:2023-12-01 05:34:07 24 4
gpt4 key购买 nike

如何将读取的txt文件放入主类中?

//main class
public class mainClass {

public static void main(String[]args) {
load method = new load("Monster");
}
}





//scanner class

public class load {

public static void loader(String... aArgs) throws FileNotFoundException {
load parser = new load("resources/monsters/human/humanSerf.txt");
parser.processLineByLine();
log("Done.");
}

public load(String aFileName){
fFile = new File(aFileName);
}

public final void processLineByLine() throws FileNotFoundException {
//Note that FileReader is used, not File, since File is not Closeable
Scanner scanner = new Scanner(new FileReader(fFile));
try {
//first use a Scanner to get each line
while ( scanner.hasNextLine() ){
processLine( scanner.nextLine() );
}
}
finally {

scanner.close();
}
}

public void processLine(String aLine){
//use a second Scanner to parse the content of each line
Scanner scanner = new Scanner(aLine);
scanner.useDelimiter("=");
if ( scanner.hasNext() ){
String name = scanner.next();
String value = scanner.next();
log("Stat is : " + quote(name.trim()) + ", and the value is : " + quote(value.trim()) );
}
else {
log("Empty or invalid line. Unable to process.");
}
}

public final File fFile;

public static void log(Object aObject){
System.out.println(String.valueOf(aObject));
}

public String quote(String aText){
String QUOTE = "'";
return QUOTE + aText + QUOTE;
}
}

如果我想要文件中的文本,我应该从主类调用哪个方法以及从该方法返回哪些变量。如果有人有一个可以帮助我学习扫描仪的网站(从互联网上获得了这个源代码,并且只是从 JavaPractises 和 sun 教程中了解它),那就太好了。谢谢

最佳答案

首先,您可能想要遵循标准 Java naming conventions - 使用public class MainClass而不是mainClass

其次,对于您的方法,public 有特定的用途。请参阅herehere 。通常,您只需在必要时才将方法标记为 public(用行话来说,这称为封装)。

对于您的问题 - 在 Load 类中,您可以将文件中的所有文本附加到 String 中,并添加 public Load 中的 getter 方法将在调用时返回该方法。

将其添加到加载的开头:

public class Load {
private String fileText;
// ... rest of class

并将此 getter 方法添加到 Load 类中。是的,您可以简单地将 fileText 标记为 public,但这违背了面向对象编程的目的。

public getFileText(String aFileName){
return fileText;
}

最后,使用这个新方法来记录日志。请注意,无需使用Object

private static void log(String line) {
System.out.println(line);
fileText += aObject;
}

现在可以通过调用method.getFileText()将读取的文件放入主类中

关于java - 如何将变量从使用 Scanner 的类传递到主类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8461855/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com