String取长度最大的值

在JSP页面中,String testList ="";

testList+=testDto.getTestCode();

循环相加获取的值类似于a,ab,abc,abcd,abcde这样的

如何只取长度最长的那个值,即abcde

public static boolean hasLength(String str) {
return (str != null && str.length() > 0);
}

/**
*
* @param toSplit 需要分割的字符串
* @param delimiter 分隔关键字
* @return 分析为数组返回
*/
public static String[] splitByDelimiter(String toSplit, String delimiter) {
List <String> list = splitByDelimiterEx(toSplit,delimiter);
return list.toArray(new String[list.size()]);
}
////@SuppressWarnings("unchecked")
public static List <String> splitByDelimiterEx(String toSplit, String delimiter) {
if (!hasLength(toSplit) || !hasLength(delimiter)) {
return null;
}
int offset = toSplit.indexOf(delimiter);
if (offset < 0) {
return null;
}
ArrayList <String> list = new ArrayList<String>();
list.add(toSplit.substring(0,offset));
for (;;) {
int secoffset = toSplit.indexOf(delimiter,offset + delimiter.length());
if(secoffset == -1)
break;
list.add(toSplit.substring(offset+delimiter.length(),secoffset));
offset = secoffset;
}
list.add(toSplit.substring(offset+delimiter.length(),toSplit.length()));
return list;
}

//简单的测试 如果你要枚举所有最长的字符串(请自己扩展一下)
String str = "a,s,sd,sdsd,ddd,k";
String [] test = splitByDelimiter(str,",");
Arrays.sort(test);
System.out.println(test[test.length-1]);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-20
package src;

import java.util.ArrayList;

public class Test {
/**
* @param args
*/
public static void main(String[] args) {
//将getTestCode的值装入数组
ArrayList<String> list = new ArrayList<String>();
for(int i =0; i < 5; i++){
list.add(getTestCode());
}

int maxLengthIndex = 0;
int maxLength = 0;
for(int i = 0; i < list.size(); i++){
if(list.get(i) != null && list.get(i).length() > maxLength){
maxLengthIndex = i;
maxLength = list.get(i).length();
}
}
System.out.println(list.get(maxLengthIndex));
}

//简单的测试驱动方法
private static int random = 0;

private static String getTestCode(){
String[] strings = {"a","ab","abc","abcd","abcde"};
return strings[random++ % 5];
}
}
第2个回答  2010-01-18
for 判断

一堆,什么冒泡之类的
相似回答