1.按要求实现:
(1) 封装一个新闻类,包含标题和内容属性,提供get.set方法,重写toString方法,打印对象时只打印标题;
•(2) 只提供一个带参数的构造器,实例化对象时,只初始化标题:并旦实例化两个对象:
新闻一:新冠确诊病例超干万,数百万印度教信徒赴恒河“圣浴”引民众担忧
新闻二:男子突然想起2个月前钓的鱼还在网兜里,捞起一看赶紧放生
(3) 将新闻对象添加到ArrayList集合中,并且进行倒序遍历:
(4) 在遍历集合过程中,对新闻标题进行处理,超过15字的只保留前15个,然后在后边加”..
(5) 在控制台打印遍历出经过处理的新闻标题;
练习:第一遍做(没有实现3的倒序遍历和4)
package com.msbedu.collectionTest;
import java.util.*;
public class test {
public static void main(String[] args) {
List list=new ArrayList();
list.add(new news("新冠确诊病例超千万,数百万印度教徒赶赴恒河"));
list.add(new news("男子突然想起两个月前的鱼还在网兜,立马放生"));
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
Object obj = iterator.next();
}
System.out.println("list="+list);
}
}
class news {
private String tittle;
private String content;
public String getTittle() {
return tittle;
}
public void setTittle(String tittle) {
this.tittle = tittle;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
@Override
public String toString() {
return "news{" +
"tittle='" + tittle + '\'' +
'}';
}
public news(String tittle) {
this.tittle = tittle;
}
}
第二次做(思路:遍历可用for循环倒序实现,(4)使用定义一个方法实现 截取用到substring方法 )
package com.msbedu.collectionTest;
import java.util.*;
public class test {
public static void main(String[] args) {
List list = new ArrayList();
list.add(new news("新冠确诊病例超千万,数百万印度教徒赶赴恒河"));
list.add(new news("男子突然想起两个月前的鱼还在网兜,立马放生"));
int size = list.size();
for (int i = size - 1; i >= 0; i--) {
//System.out.println(news.processTittle()); 不能直接取到news 用多态向下转型将
news news = (news) list.get(i);
System.out.println(news.processTittle(news.getTittle()));
}
}
}
class news {
private String tittle;
private String content;
public String getTittle() {
return tittle;
}
public void setTittle(String tittle) {
this.tittle = tittle;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
@Override
public String toString() {
return "news{" +
"tittle='" + tittle + '\'' +
'}';
}
public news(String tittle) {
this.tittle = tittle;
}
//该方法用来处理新闻标题超过15
public static String processTittle(String tittle) {
if (tittle == null) {
return ""; //tittle为空直接返回空
}
if(tittle.length()>15){
return tittle.substring(0,15)+"..."; //超过15 用字符串的substring方法截取+拼接
}
else {
return tittle; //没有超过就直接返回标题
}
}
}
运行成功。
试着用迭代器逆序遍历?多态的使用?字符串的方法?面向对象编程?