gpt4 book ai didi

java - 如何使 Wordat 以字符串形式返回页面上该位置的单词。如果该行或单词不存在则返回 null

转载 作者:太空宇宙 更新时间:2023-11-04 09:43:25 28 4
gpt4 key购买 nike

您的 Page 类需要一个名为 addLine 的方法,该方法采用一个 String 参数来保存页面中的一行。该方法将被重复调用,以将行添加到类正在存储的页面中。

您还需要一个名为 numLines 的方法,该方法返回页面上的行数。

最后,您将需要一个 wordAt 方法,该方法接受两个参数:行号和单词编号,并以字符串形式返回页面上该位置的单词。行号和字号是页面上的行和该行上的字的从 1 开始的索引。 (第一行是第 1 行,任何行上的第一个单词都是单词 1)。如果该行或单词不存在,则返回 null。

我已经尝试过了公共(public)字符串 wordAt (int ln, int wn) { 返回行[ln][wn];

这是我的 main.java

    import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Page p = new Page();
Scanner s = new Scanner(System.in);

while (s.hasNextLine()) {
p.addLine(s.nextLine());
}

System.out.println("Number of lines: " + p.numLines());
System.out.println("First word: " + p.wordAt(1, 1));
System.out.println("Another word: " + p.wordAt(15, 5));
}
}

这是针对 page.java

    import java.util.ArrayList;
public class Page {
private ArrayList <ArrayList <String>> line;
public Page () {
line = new ArrayList <ArrayList<String>>();
line.add(null);

}

public void addLine (String ip) {
ArrayList<String> enter = new ArrayList<String>();
String[] arr = ip.split(" ");
enter.add(null);
for (int i=0; i < arr.length; i++) {
enter.add(arr[i]);
}
line.add(enter);

}

public int numLines () {
int totalnum = line.size() - 1;
return 0;
}

public String wordAt (int ln, int wn) {


}
}

代码应以字符串形式返回页面上该位置的单词。如果该行或单词不存在,则返回 null。

最佳答案

    public class Page {

private final List<String> lines;

public Page() {
lines = new ArrayList();
}

public String wordAt(int lineIndex, int wordIndex) {
lineIndex--; // offset before doing anything
wordIndex--;
if (lineIndex < numLines() && lineIndex >= 0) {
String line = lines.get(lineIndex);
// split words at each space(s) (one or more space characters)
// assignment didn't specify what a "word" is.
String[] split = line.split("[ ]+");
if (wordIndex >= 0 && wordIndex < split.length) {
return split[wordIndex];
}
}
return null;
}

public int numLines() {
return lines.size();
}

public boolean addLine(String line) {
return lines.add(line);
}

}

public static void main(String[] args) {
Page page = new Page();
page.addLine("Will the real slim shady, please stand up");
page.addLine("... please stand up, please stand up.");
System.out.println(page.wordAt(1, 9)); // should be null
System.out.println(page.wordAt(1, 1)); // should be Will
System.out.println(page.wordAt(2, 1)); // should be ... (ellipses)
System.out.println(page.wordAt(2, 3)); // should be ("stand")
System.out.println(page.wordAt(3, 1)); // no third line... (null)


}


Output:
run:
null
Will
...
stand
null
BUILD SUCCESSFUL (total time: 0 seconds)

关于java - 如何使 Wordat 以字符串形式返回页面上该位置的单词。如果该行或单词不存在则返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55698385/

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