java中的Getter、setter和数组
我现在正在做的java任务有问题。我试着回答问题3和问题4,这是基于下面的代码java中的Getter、setter和数组,java,Java,我现在正在做的java任务有问题。我试着回答问题3和问题4,这是基于下面的代码 以下代码是对问题1和2的回答,其中 希望您修改应用程序,使每一行输出 编号,从1开始 这样做时,如果插入了另一个println/nextLine 在此之后,您不需要重新编号所有行。单程 这样做是使用整数变量来存储当前行 每次输出一行时,将其编号并增加一 运行程序后,输出窗口应如下所示: 1: Enter a line Some input 2: Enter another line More input 3: E
- 以下代码是对问题1和2的回答,其中 希望您修改应用程序,使每一行输出 编号,从1开始
- 这样做时,如果插入了另一个println/nextLine 在此之后,您不需要重新编号所有行。单程 这样做是使用整数变量来存储当前行 每次输出一行时,将其编号并增加一
1: Enter a line
Some input
2: Enter another line
More input
3: Enter the last line
The end
The end,More input,Some input
上面的代码回答了问题1和2 对于问题3,它要求我创建一个名为Line的新java类,然后向该类添加适当的实例变量(字段)和构造函数,以便 文本行(一个字符串,称为text)和序列号(一个int,称为seqNum) 可以储存。对于其他类,这些实例变量应该是“只读”的。那个 也就是说,应该将它们声明为“private”,并提供一个“getter”方法来返回 价值这就是我在下面代码中所做的:
public class Line {
public String getText() {
return text;
}
private String text;
public int getSeqNum() {
return seqNum;
}
private int seqNum;
}
然后,它要求修改类Practical1的main方法,以便存储每行文本
和它的序列号,而不是字符串对象。修改
所需的变量类型(msg1等)。请注意,要打印一行,您需要
调用getter方法。程序的输出应该与以前完全相同
最后,更多的投入,一些投入
最后,它要求您现在更改程序,以便使用该行打印序列号。这个
输出的最终线应为:
3: The end,2: More input,1: Some input
我该如何回答这个问题
对于问题4,最后一个问题,它希望我
修改程序,使其使用循环重复执行以下操作:
-提示输入(使用行seqNum和提示短语:“输入一行”)
-读取输入行
-将输入行存储在行或数组的下一个位置
行的数组列表
一旦用户输入STOP作为输入,循环应该终止,另一个循环应该停止
按相反顺序打印每一行。例如(您应键入的输入为粗体):
我该如何回答这个问题?您可以采用以下方法来解决这个问题 一线班 用于在提供停止文本之前进行无限输入的演示类
类演示
{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
列表=新的ArrayList();
int计数器=0;
while(true)
{
扫描的字符串\u line=sc.nextLine();
如果(扫描行等于(“停止”))
打破
列表。添加(新行(计数器、扫描行));
计数器++;
}
//按照seq num的相反顺序对列表进行排序
list.sort(Comparator.comparingInt(Line::getSeq.reversed());//java 8 Comparator
list.forEach(e->System.out.println(e.getSeq()+“”+e.getText());//Java8foreach
}
}
而且
- 需要注意的是,
可以替换为while(true)
。因此,它将扫描,直到提供下一行输入while(scanner.hasNextLine())
- 另外,Java8
也可以用传统的for循环代替forEach
3: The end,2: More input,1: Some input
1: Enter a line
Some input
2: Enter a line
More input
3: Enter a line
The end
4: Enter a line
STOP
3: The end
2: More input
1: Some input
public class Line
{
private int seq_num;
private String text;
Line(int seq_num, String text)
{
this.seq_num = seq_num;
this.text = text;
}
public String getText()
{
return this.text;
}
public int getSeq()
{
return this.seq_num;
}
}
class Demo
{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
List<Line> list = new ArrayList<>();
int counter =0;
while(true)
{
String scanned_line = sc.nextLine();
if(scanned_line.equals("STOP"))
break;
list.add(new Line(counter,scanned_line));
counter++;
}
//sort the list as per the seq num in reverse order
list.sort(Comparator.comparingInt(Line::getSeq).reversed()); // java 8 comparator
list.forEach(e-> System.out.println(e.getSeq()+" "+e.getText()));//java 8 forEach
}
}