首先你要找出不重复字母的个数 确定要生成多少个list 然后把相同字母的记录放到一个list中 ...
解决方案 »
- log4J的问题
- XStream的bug,比如在定义别名中的下划线“_”解析为xml后。xml的节点<per_name>对应person类中的per_name字段不匹配
- 跪求 quartz 视频,急急急
- Oracle+ibaits异常 java.lang.ClassNotFoundException 急
- FtpClient connect reset的问题
- 如何上班的时候找下一家公司啊?????
- 请教高级系统架构师,一般人员回答不了,Spring + Struts 整合的优点?
- Java问题
- 如何让地址栏保持不变,在线等,很着急,请高手解决一下,只有这些分了,以后再补
- hibernate3 和spring组和的问题
- about one to many,many to one, many to many ,one to one
- 怎样用java编写一个email
或者
select dep from table_name where length(dep) = 1 group by dep;
都可以找出不同的字母,最后根据查询出来的数据,like '值%',不就可以了吗?
select substr(dep,1,1) as kind,dep as dep from TB_DEP order by dep用一个记录器记住当前处理的是哪个字母,每次循环就比较。相同,则往同一个List中加入,不相同则新建一个List,并更新记录器记住的那个字母。
至于List_A和B的区分,可以用“Select DEP from TB_DEP where dep Like 'A%'”这样的语句得到。
还有简单的办法,就是一下用“Select Dep from TB_DEP order by Dep”选出所有的记录,因为是按照DEP字段排序的,所以所有的A、A1、A***之类的都会排到B的前面,所以你可以在遍历查询出来的结果集的时候区分一下。
ResultSet rs=s.executeQuery("select substring(dep,1,1) as kind,dep as dep from TB_DEP order by dep");
while(rs.next())
{
if(!flag.equals(rs.getString(1)))
{
flag=rs.getString(1);
map.put(flag,new ArrayList());
((ArrayList)map.get(flag)).add(rs.getString(2));
}
else
{
((ArrayList)map.get(flag)).add(rs.getString(2));
}
}
Set set=map.keySet();
Iterator it=set.iterator();
while(it.hasNext())
{
String str=(String)it.next();
ArrayList l=(ArrayList)map.get(str);
System.out.println(l);
}
然后在ArrayList l=(ArrayList)map.get(str)后,用list_all.add(l),把它加进去可以了,这样list_a=list_all.get(0),list_b=list_all.get(1)。
我是这么想的,不知道楼主究竟是不是这意思。可能我没理解透楼主的意思吧。
写了一个程序但有错误!大家帮忙看看。
String[] t = new String[9];
t[0] = "a";
t[1] = "a1";
t[2] = "a2";
t[3] = "a3";
t[4] = "a4";
t[5] = "b";
t[6] = "b1";
t[7] = "b2";
t[8] = "c";
for (int i = 0; i < t.length; i++) {
if (i % 4 == 0) {
System.out.println("\n");
}
if (t[i].length() == 1) {
n=i;
if ((n % 4) != 0 || t.length-n<4 ) {
for (int j = 0; j < (3 - n % 4); j++) {
System.out.print(" #");
}
}
System.out.println("\n");
System.out.print("标题" + t[i]);
System.out.println("\n");
} else {
System.out.print(" " + t[i]);
}
} }
标题(a)
a1,a2,a3
a4, # #
标题(b)
b1,b2,#
标题(c)
这样的格式。
------------------怎么好像一条很简单的 SELECT TB_DEP FROM 表 ORDER BY TB_DEP 就解决了
结果就是:
A
A1
A2
A3
B
B1
B2
if (rs==null) return;
String tmpS;//临时变量
char c;
char c0='0';//记录上一个m值
int k=0;//计数用
for(int i=0;rs.next();i++,k++) {
tmpS=sss[i];
c=tmpS.charAt(0);
if (c != c0){
c0=c;//记录上一个首字符是什么
//处理补充#问题,如果当前k不足三,补足相应的数
if (k==1) System.out.print(",#,#");
if (k==2) System.out.print(",#"); System.out.println("\n"+"标题(" +c+")" );
System.out.print(tmpS);
k=0;
}else{
if (k % 3==0){
System.out.println("\n");
k=0;
}else{
System.out.print(",");
}
System.out.print(tmpS);
}
}
}