图1
图2
最近做了一个个人博客系统,里面用到了一个功能。如上图所示,每一副图片对应着一句话,点击图片后,图片和话会进行同步切换。刚开始的时候,我选择了定义许多个字符串,即对每一张图片定义一个对应的字符串,如下所示
public static String love0="和你在一起好开心的呢";
public static String love1="平西湖畔的的回忆";
public static String love2="平院的操场,你,和我";
public static String love3="宝贝好可爱的呢";
public static String love4="要一直笑下去哟亲爱的";
public static String love5="盈儿萌萌哒";
public static String love6="老婆,我爱你";
public static String love7="小可爱去郑航的路上";
public static String love8="这个就是我了,嘻嘻";
public static String love9="猪宝宝,要开心呢";
public static String love10="是不是挺帅的,嘿嘿";
public static String love11="刚起床头发有点乱呢";
Random ran=new Random();
int p=ran.nextInt(11);
if(p==0){
out.write("<h3 class=\"tit\">"+OtherUtil.love0+"</h3>");
}else if(p==1){
out.write("<h3 class=\"tit\">"+OtherUtil.love1+"</h3>");
}else if(p==2){
out.write("<h3 class=\"tit\">"+OtherUtil.love2+"</h3>");
}else if(p==3){
out.write("<h3 class=\"tit\">"+OtherUtil.love3+"</h3>");
}else if(p==4){
out.write("<h3 class=\"tit\">"+OtherUtil.love4+"</h3>");
}else if(p==5){
out.write("<h3 class=\"tit\">"+OtherUtil.love5+"</h3>");
}else if(p==6){
out.write("<h3 class=\"tit\">"+OtherUtil.love6+"</h3>");
}else if(p==7){
out.write("<h3 class=\"tit\">"+OtherUtil.love7+"</h3>");
}else if(p==8){
out.write("<h3 class=\"tit\">"+OtherUtil.love8+"</h3>");
}else if(p==9){
out.write("<h3 class=\"tit\">"+OtherUtil.love9+"</h3>");
}else if(p==10){
out.write("<h3 class=\"tit\">"+OtherUtil.love10+"</h3>");
}else if(p==11){
out.write("<h3 class=\"tit\">"+OtherUtil.love11+"</h3>");
}
这个时候,对应的jsp中java代码如上所示,看上去好恐怖,代码好多,怎么办呢。如果图片有很多张,难不成要相应定义很多个字符串?
重点:突然间想到了,可以借用字符串数组这个强大的工具,于是代码变成了如下这样-_-
private static String []words={
"和你在一起好开心的呢","平西湖畔的的回忆","平院的操场,你,和我","宝贝好可爱的呢","要一直笑下去哟亲爱的","盈儿萌萌哒"
,"老婆,我爱你","小可爱去郑航的路上","这个就是我了,嘻嘻","宝宝,要开心呢","是不是挺帅的,嘿嘿","刚起床头发有点乱呢"};
//不一样的图,想对你说不一样的话
public static String loveSen(int i){
return words[i];
}
定义字符串数组words,里面囊括了所有图片对应的话的字符串,然后又写了一个简单的方法,参数为图片的id,返回的是这张图片对应的话语字符串。
jsp中调用该方法如下所示,随机产生一个11以内的随机数,将这个随机整数传入方法中,即可得到该整数对应的话语字符串,图片的名称起为love0,love1,,,将这个整数传给对应的图片名称后即可实现一张图片对应显示一句话。
<%>Random ran=new Random();
int p=ran.nextInt(11);
String lovesen=OtherUtil.loveSen(p);//爱的句子
out.write("<h3 class=\"tit\">"+lovesen+"</h3>");
<%> <div class="ad" > <a href=""><img style="width:150px;height:120px;" src="images/yinger/love<%=p%>.jpg" ></a> </div>
总结:通过这次的代码优化,发现有时候,使用好数组真的会起到事半功倍的效果,因为对上面代码相比可知,使用数组后的代码量远远比刚开始笨方法的代码要少的多。