java - 如何创建三个单独的数组并将整数存储在一个数组中,将字符串存储在其他数组中?

标签 java arrays

我正在尝试编写一个程序来读取文件“Roster.txt”中的数据并将其本地存储在三个单独的数组中:

  • 一个代表 Jersey 号码,
  • 一个代表玩家姓名,
  • 一个代表职位。

我想单独打印每个数组。

Roster.txt 文件格式为:

1 Nathan Clark DB
2 Austin Mancosky RB
4 Drew David QB
7 A.J. Day WR
9 Andrew Thompson QB
11 Nick Holcomb WR
13 Joel Oxton WR
17 Joshua Fischer K
18 Dylan Ulrich DB
22 Michael Garvey LB
23 Josh Neary DB
24 Jalen Clark RB
27 Alexander Villarreal DB
28 Tyler Jenkins RB
31 Peter Krien DB
32 Tevin Anderson RB
35 Zach Kirby P
37 Zach Pierce LB
38 Jacob Zabrowski TE
42 Zach Novotny TE
44 Zach Zillmer LB
51 Jacob Gerzsik LB
52 Eric Bitney LB
53 Aaron Benson LB
57 Zach Sedo LB
58 Alex Prendergast DL
59 Caleb Bryant OL
60 Dan Graf DL
61 Collin Quinn DL
62 Ellis Johnson OL
64 Dylan Bauer OL
69 Eric Graf DL
70 Eric Larson DL
71 Garrett Westerwelle OL
75 Langdon Scott OL
76 Nathan Carpenter OL
80 Samuel Allen WR
84 Dante Marski WR
88 Bryce Neidert TE
97 Sebastian Garcia DL

我当前的代码:

import java.io.File;
import java.util.Scanner;
public class Exercise5 {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner sc = new Scanner(System.in);

    System.out.println("Enter the file name: ");

    String filename = sc.next();

    File myFile = new File(filename);

    int[] jerseyNumber = new int[39];

    String[] playerName;

    String[] playerPosition;

    int counter = 0;

    while(counter < 39)
    {
        counter++;
    }
 }


public static void printArray(int[] array)
{
for(int i = 0; i < array.length; i++)
{
    System.out.print(array[i] + " ");
}
System.out.println();
}
}

如有任何帮助,我们将不胜感激。

最佳答案

我的意思是,是的,你可以做到这一点,

用途:

List<Integer> playerNumbers = new ArrayList<>();
List<String> playerNames = new ArrayList<>();
List<String> playerPositions = new ArrayList<>();

好吧,但实际上不要这样做。你最好(最有可能)创建一个类来代表每个玩家:

public class Player {
    final Integer number;
    final String name;
    final String position;

    public Player(final Integer number,
                  final String name,
                  final String position) {
        this.number = number;
        this.name = name;
        this.position = position;
    }

    public String getName() {
        return name;
    }

    public Integer getNumber() {
        return number;
    }

    public String getPosition() {
        return position;
    }
}

然后有一组球员,一个“名单”:

List<Player> roster = new ArrayList<Player>();

然后,当你逐行读取数据时,创建一个新的Player:

while (readStuff()) {
    final Integer number = getNumberFromInput();
    final String name = parseNameBlahBlah();
    final String position = obtainPositionBlah();
    roster.add(new Player(number, name, position));
}

如果您确实需要的话,您可以从那里构建列表:

List<String> playerNames =
    roster.stream().map(x -> x.getName()).collect(Collectors.asList());

for (final String playerName : playerNames) {
    System.out.println(playerName + " is on the roster!");
}

等等

下一步是扩展以更改 String position到一个枚举,你也可以做一个 Roster直接类,它具有关于每个位置有多少个的内部逻辑,检查是否未添加重复项等,因此取代了简单的 List<Player> ,你会得到 Roster类:

Roster roster = new Roster();
roster.add(player);

哪里roster.add()对球员进行检查,以确保将他们列入名单是有意义的。例如,是否已经有一个拥有所提供号码的玩家?等等等等

关于java - 如何创建三个单独的数组并将整数存储在一个数组中,将字符串存储在其他数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40197697/

相关文章:

java - 如何减少JVM虚拟内存的使用?

ios - 如何根据唯一属性值对字典数组进行分组?

c++ - 动态初始化字符数组

javascript - 按秒对时间戳数组进行分组

javascript - Accordion 的滚动相关代码有一些冲突

java - JButton 隐藏直到悬停第一次启动

java - 在 Java 中创建示例时可以使用 "linked list"吗?

java - 单向@OneToMany 关联未通过 JPA 中的相等性测试

Java 原型(prototype)克隆没有按预期工作?

javascript - ES6中的Filter Object形成另一个Object