在java中从数组打印特定元素的数据
我有一个类类型的数组,用于存储视频(不是真实的视频,只是对象)。 每个视频都有一个标题和作者。 视频的数据集使用以下集合方法:在java中从数组打印特定元素的数据,java,arrays,class,Java,Arrays,Class,我有一个类类型的数组,用于存储视频(不是真实的视频,只是对象)。 每个视频都有一个标题和作者。 视频的数据集使用以下集合方法: public class Clip { private String title; private String author; public void setTitle (String s1) { title = s1; } public void setAuthor (String s2) {
public class Clip {
private String title;
private String author;
public void setTitle (String s1) {
title = s1;
}
public void setAuthor (String s2) {
title = s2;
}
然后我有一个不同的类,它创建数组并使用这些set方法输入数据。
然后程序要求用户从数组中选择一个元素,例如用户
选择元素[3]。现在程序必须打印该元素(视频)的标题和作者
这是我不知道该怎么做的部分?
能给我一些帮助吗 重写toString(),然后只需调用
System.out.println(element[3])
如果您需要创建toString方法的帮助,eclipse可以向您展示它是如何完成的
按Alt+Shift+S然后按S,或者右键单击->源->生成toString()基本上您有两个选项:
公共字符串getTitle(){return title;}
toString
功能以输出所需的值,例如:
@凌驾
公共字符串toString(){
返回“作者:“+Author+”,标题:“+Title”;
}公共类剪辑{
私有字符串标题;
私有字符串作者;
公共void setTitle(字符串s1){
title=s1;
}
公共void setAuthor(字符串s2){
作者=s2;
}
@凌驾
公共字符串toString(){
返回作者+“:”+标题;
}
重写Clip的toString方法。每次调用print*(例如println)方法都会调用对象的toString方法
@Override
public String toString() {
return "[Title: " + this.title +", Author: " + this.author + "]";
}
重写方法后的示例:
Clip clip1 = new Clip();
Clip clip2 = new Clip();
Clip[] clipArray = {clip1, clip2};
for (Clip clip : clipArray) {
System.out.println(clip);
}
请重写Clip类的toString(),如下所示
@Override
public String toString() {
return "Title:"+ this.s1 + " Author:" + this.s2;
}
Then print the Title and Author by using the below code.
System.out.println(objectClip.toString());
Clip类的实现错误。应该是这样的:
public class Clip {
private String title;
private String author;
public Clip(String title, String author) {
this.title = title;
this.author = author;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
}
@Test
public void testClipArray() throws Exception {
// Lets assume our array contains 2 elements
Clip[] clipArray = new Clip[2];
clipArray[0] = new Clip("First", "Clip");
clipArray[1] = new Clip("Second", "Clip");
// Lets retrieve 2nd object (with index: 1)
Clip secondObject = clipArray[1];
System.out.println(secondObject.getAuthor());
System.out.println(secondObject.getTitle());
}
您可以从数组中检索对象,如下所示:
public class Clip {
private String title;
private String author;
public Clip(String title, String author) {
this.title = title;
this.author = author;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
}
@Test
public void testClipArray() throws Exception {
// Lets assume our array contains 2 elements
Clip[] clipArray = new Clip[2];
clipArray[0] = new Clip("First", "Clip");
clipArray[1] = new Clip("Second", "Clip");
// Lets retrieve 2nd object (with index: 1)
Clip secondObject = clipArray[1];
System.out.println(secondObject.getAuthor());
System.out.println(secondObject.getTitle());
}
在Clip类中重写toString()方法,如下所示
@override
public String toString(){
return "Title: "+ title +" ,author"+author;
}
和调用代码调用以下语句
System.out.println(element[3]);
重写Clip类的toString()方法。例如
public class Clip {
private String title;
private String author;
public void setTitle (String s1) {
title = s1;
}
public void setAuthor (String s2) {
title = s2;
}
@Override
public String toString() {
return title + " by " + author;
}
}
然后按如下方式打印剪辑阵列:
for (Clip aClip : arrayOfClips) {
System.out.println(aClip);
}
您正在setters中创建新字符串。请不要这样做。这应该是
this.title=s1;
有什么问题?搜索overridetoString()
。你能举个例子吗?这个问题与另一个问题完全相同example@Sureshatta-他是如何创建新字符串的?你这是什么意思?他正在传递一个字符串引用,然后将其分配给私有字段。没有包含字符串构造函数,所以基本上都是关于引用的。是的,就是这样这似乎也不能回答OP的问题