第一题代码:
分析:将字符数组中的每个字符串,找出其中最长的那个与字符数组中长度进行比较:
a、当最长的字符串的长度大于等于字符数组的长度时,直接输出
b、当最长的字符串的长度小于字符数组的长度时,找出该长度下整数值最大的那个字符串,在前面部0输出
package com.njupt; public class Heia { public String MaxLength(String[] string){ int max=Integer.valueOf(string[0]); int index=0; for(int i=1;i<string.length;i++){ int temp=Integer.valueOf(string[i]); if(max<temp){ max=temp; index=i; } } if(string[index].length()>=string.length){ return string[index]; } else{ String str=""; int tem=string.length-string[index].length(); for(int j=0;j<tem;j++){ str +="0"; } str +=string[index]; return str; } } public static void main(String[] args){ String[] string={"","2","0"}; Heia h=new Heia(); System.out.println(h.MaxLength(string)); } }
第二题代码:(代码可能还有点问题,等待修改)
import java.util.ArrayList; public class Test { public void QuNaer(String string){ ArrayList<String> alist=new ArrayList<>(); string=string.trim(); String str=string.valueOf(string.charAt(0)); for(int i=1;i<string.length();i++){ if(string.charAt(i)=='-'){ str=str.trim(); alist.add(str); str="-"; } else{ if(string.charAt(i)!=' '){ str +=string.charAt(i); } else{ if(string.charAt(i-1)!=' '){ str +=" "; } } } } str=str.trim(); alist.add(str); System.out.println(alist); } public static void main(String[] args) { // TODO Auto-generated method stub String string="-name Lily -age 21 -school "zhao yan""; //String string =" zhao yan "; Test t=new Test(); t.QuNaer(string); } }
第三题代码:
分析:因为该题的目标是如何使得字符串a通过添加或者减少一下字符,最终得到字符串b
注:字符串a=“bc“,字符串b=”cb“;要进行+c,-c操作
具体做法:
1、遍历字符串a,(当前a的位置为i);
2、判断字符串中第i个位置的字符(a.CharAt(i))是在b中存在;
a、如果存在,从b第一个字符(j=0)开始查找第一个与字符串a当前位置i相等的字符,并b之前字符依次进行+b对应的字符b.CharAt(j),最后将b中 j+1位置前的字符都删除
b、如果不存在,执行-a.CharAt(i)操作。
3、当遍历完字符串a时,判断字符串b中是否还有字符,一次执行+b.CharAt(j)。
package com.njupt; public class Cont { public String diff(String a,String b){ String string=""; for(int i=0;i<a.length();i++){ String str=String.valueOf(a.charAt(i)); if(b.contains(str)){ int j=0; //System.out.println(b.charAt(j)!=a.charAt(i)); while(b.charAt(j)!=a.charAt(i)){ string += "+"+b.charAt(j)+","; ++j; } b=b.substring(j+1); } else{ string += "-"+a.charAt(i)+","; } } for(int i=0;i<b.length();i++){ string += "+"+b.charAt(i)+","; } return string; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String string1="abaced"; String string2="dabababacdb"; Cont c= new Cont(); System.out.println(c.diff(string1, string2)); //System.out.println(string1.substring(1)); } }