例子:
id dptid(部门id)
1 1,2,3,4,5
如何变成:
1 1
1 2
1 3
1 4
1 5
//用java切割,怎么实现呢?
自己写切割部分
package com.csdn;
import java.util.ArrayList;
import java.util.List;
public class Solution {
public static void main(String[] args) {
List<Dept> deptList = new ArrayList<>();
Dept dept = new Dept("1", "1,2,3,4,5");
String[] split = dept.getDeptid().split(",");
for (String s : split) {
dept = new Dept(dept.getId(), s);
deptList.add(dept);
}
deptList.forEach(System.out::println);
}
}
class Dept {
private String id;
private String deptid;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getDeptid() {
return deptid;
}
public void setDeptid(String deptid) {
this.deptid = deptid;
}
public Dept(String id, String deptid) {
super();
this.id = id;
this.deptid = deptid;
}
@Override
public String toString() {
return "Dept [id=" + id + ", deptid=" + deptid + "]";
}
}
这样 上面的list集合中 存放的对象 就是一一对应了
切割后用
Dictionary<Integer, List<Integer>>
存储,key是id,List是部门id列表,或者是建一个类,属性有id和部门id,用对象列表存储
如下:
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "1 1,2,3,4,5";
String[] s = str.split(" "); //先用空格分割
if(s.length ==2){
String[] ids = s[1].split(","); //再用‘,’分割
for(int i = 0;i< ids.length;i++)
System.out.println(s[0] + "\t" + ids[i]);
}
}
其实,他们说的都没错,但也不全对;
你的疑惑不在于如何切割字符串,而是你没有思路去怎么处理好这个事情;
这个,是软件开发的思维模式,关于软件开发的思维模式,有这么一个套路
1、拿到事情【任务】的时候,=== 分析问题,
2、解决问题,用什么技术来解决问题 === 技术可行性分析
3、项目实施,==用具体的技术解决具体问题;
回到你具体的问题,把字符串切割,然后按类排序,
这是你在验证【技术可行性】的阶段,你说的技术,楼上的几位实现都可以;
在此,我就不重复了。
如有需要,欢迎来交流。
public class Dept {
private String id;
private String deptid;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getDeptid() {
return deptid;
}
public void setDeptid(String deptid) {
this.deptid = deptid;
}
public Dept(String id, String deptid) {
this.id = id;
this.deptid = deptid;
}
public static void main(String[] args) {
//从数据库查出来的列表
List<Dept> list = new ArrayList<>();
Dept dept = new Dept("1", "1,2,3,4,5");
Dept dept1 = new Dept("2", "2,3,4,5");
Dept dept2 = new Dept("3", "3,4,5");
Dept dept3 = new Dept("4", "4,5");
list.add(dept);
list.add(dept1);
list.add(dept2);
list.add(dept3);
//以上是模拟数据
//分割部门id后的列表
List<Dept> newList = new ArrayList<>();
list.forEach(item -> {
//这里对deptid做分割 得到数组deptidArray
String[] deptidArray = item.getDeptid().split(",");
//遍历deptidArray
for (String deptid : deptidArray) {
//new Dept
Dept d = new Dept(item.getId(), deptid);
//依次放入分割部门id后的列表中
newList.add(d);
}
});
}
}
主要看main方法实现