java - 如何创建一个静态解析方法来获取带有制表符分隔部分的字符串?

标签 java eclipse

我该如何开始。我知道如何制作这个方法,但我不知道到底要在里面放什么。我正在制作一个歌曲类,其中包含歌曲的年份、排名、艺术家和标题。我从另一个 txt 文件中获取此信息。 Song 应该有一个静态解析方法,该方法接受带有制表符分隔部分的字符串并返回 Song 对象。 这是我开始使用的代码,但我不知道这是否非常合法。我也不知道它是否真的可以正常工作。

public class Billboard {
private int year;
private int rank;
private String artist;
private String title;


public void setYear(int Y){
    this.year = Y;
}
public void setRank(int R){
    this.rank = R;
}
public void setArtist(String A){
    this.artist = A;
}
public void setTitle(String T){
    this.title = T;
}
public int getYear(){
    return this.year;
}
public int getRank(){
    return this.rank;
}
public String getArtist(){
    return this.artist;
}
public String getTitle(){
    return this.title;
}

public void Song (String Line) {
String[] token = line.split("\t");
title = token[0];
artist = token[1];
year = Integer.parseInt(token[2]);

   }

}

最佳答案

您不能将此方法设为静态,因为它访问对象变量:标题、艺术家、年份

所以你需要使用构造函数,或者将一个对象传递给方法:

public Billboard (String Line) {
    String[] token = line.split("\t");
    this.title = token[0];
    this.artist = token[1];
    this.year = Integer.parseInt(token[2]);
}

或者

public static Billboard parseString(String Line) {
    return parseString(line, new Billboard());
}

public static Billboard parseString(String Line, Billboard billboard) {
    String[] token = line.split("\t");
    billboard.setTitle(token[0]);
    billboard.setArtist(token[1]);
    billboard.setYear(Integer.parseInt(token[2]));
    return billboard;
}

关于java - 如何创建一个静态解析方法来获取带有制表符分隔部分的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9288591/

相关文章:

java - 按日期比较 DateTime 对象

java - 如何更新特定任务的截止日期

java - 如何使用 EclipseLink 调用函数

java - JUnit5/AssertJ 在断言上创建日志条目

java - 在eclipse中导入Android源码

java - 我可以重新导入已删除的 .git 文件而不丢失代码吗?

eclipse - 如何测试 Eclipse Juno RCP 的 UI

java - 使用 android studio 的 JSON

java - eclipse 项目中缺少类路径变量

java - Eclipse 说我的类无法解析