运行jsp的时候出现了问题
<%@page import="java.util.List"%>
<%@page import="java.util.Map"%>
<%@page import="java.util.ArrayList"%>
<%@page import="pc.ProblemCDAO"%>
<%@page import="vo.Queshu"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>JSP Page</title>
<link rel="stylesheet" href="<%=request.getContextPath()%>/res/css/bootstrap.min.css" type="text/css" media="screen" />
</head>
<body>
<h1>全部显示数据</h1>
<table class="table table-striped table-bordered">
<tr>
<th>缺书出版社</th>
</tr>
<%
ProblemCDAO sdao = new ProblemCDAO();
Queshu[] queshus=sdao.list();
List<List<Queshu>> queshuList=sdao.subsets(queshus);
for(List<Queshu> h:queshuList) {
%>
<tr>
<td>
<%=h%>
</td>
</tr>
<%
}
%>
</table>
</body>
</html>
C的dao:
*/
package pc;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import util.FileUtils;
import vo.Queshu;
/**
*
* @author Administrator
*/
public class ProblemCDAO {
public static String[] getBinary(int n) {
int size =(int) Math.pow(2, n);;
String[] s = new String[size];
for (int i = 0; i < s.length; i++) {
s[i] = String.format("%0"+n+"d", Integer.parseInt(Integer.toBinaryString(i)));
}
return s;
}
public static List<List<Queshu>> subsets(Queshu[] nums) {
int n=nums.length;
//System.out.println(Arrays.toString(s));
List<List<Queshu>> res = new ArrayList<>();
res.add(new ArrayList<>());
String[] s=getBinary(n);
for (int i = 1; i < s.length; i++) {
List<Queshu> tmp = new ArrayList<>();
for (int j = 0; j <= n-1; j++) {
if (s[i].charAt(j) == '1') {
tmp.add(nums[j]);
}
}
res.add(tmp);
}
return res;
}
public static Queshu[] list() {
List <String> datas=FileUtils.readLines("d:/ks/20214075221/data/c/data.txt");
Queshu[] all = new Queshu[datas.size()];
int i=0;
for(String data :datas){
String temp[]=data.replaceAll("\"","").split(",");
Queshu queshu = new Queshu(Integer.parseInt(temp[0]),temp[1],temp[2],temp[3],temp[4],temp[5],temp[6],temp[7],temp[8]);
all[i++]=queshu;
}
return all;
}
public ArrayList<Queshu> listAll() {
List <String> datas=FileUtils.readLines("d:/ks/20214075221/data/c/data.txt");
ArrayList<Queshu> all = new ArrayList<Queshu>();
for(String data :datas){
String temp[]=data.replaceAll("\"","").split(",");
Queshu queshu = new Queshu(Integer.parseInt(temp[0]),temp[1],temp[2],temp[3],temp[4],temp[5],temp[6],temp[7],temp[8]);
all.add(queshu);
}
return all;
}
public Map<String, List<Queshu>> listGroup() {
ArrayList<Queshu> queshuList = listAll();
Map<String, List<Queshu>> queshuListMap = new HashMap<>();
for (Queshu queshu : queshuList) {
String banshe=queshu.getBanshe();
if(queshuListMap.containsKey(banshe)==false) {
queshuListMap.put(banshe, new ArrayList<Queshu>());
}
for(String s: queshuListMap.keySet()){
List<Queshu> list = queshuListMap.get(s);
}
queshuListMap.get(banshe).add(queshu);
}
//System.out.println(heroListMap);
return queshuListMap;
}
public static void main(String[] args) {
}
}
Vo
package vo;
/**
*
* @author Administrator
*/
public class Queshu implements Comparable{
private int quesuid ;//编号
private String shu_name;//缺书书名
private String banshe;//缺书出版社
private String zuozhe;//作者
private String chuban_date;//出版日期
private String ISBN;//书号
private String liuyan;//留言
private String user;//用户名
private String time;//登记时间
public Queshu() {
}
public Queshu(int quesuid, String shu_name, String banshe, String zuozhe, String chuban_date, String ISBN, String liuyan, String user, String time) {
this.quesuid = quesuid;
this.shu_name = shu_name;
this.banshe = banshe;
this.zuozhe = zuozhe;
this.chuban_date = chuban_date;
this.ISBN = ISBN;
this.liuyan = liuyan;
this.user = user;
this.time = time;
}
public int getQuesuid() {
return quesuid;
}
public void setQuesuid(int quesuid) {
this.quesuid = quesuid;
}
public String getShu_name() {
return shu_name;
}
public void setShu_name(String shu_name) {
this.shu_name = shu_name;
}
public String getBanshe() {
return banshe;
}
public void setBanshe(String banshe) {
this.banshe = banshe;
}
public String getZuozhe() {
return zuozhe;
}
public void setZuozhe(String zuozhe) {
this.zuozhe = zuozhe;
}
public String getChuban_date() {
return chuban_date;
}
public void setChuban_date(String chuban_date) {
this.chuban_date = chuban_date;
}
public String getISBN() {
return ISBN;
}
public void setISBN(String ISBN) {
this.ISBN = ISBN;
}
public String getLiuyan() {
return liuyan;
}
public void setLiuyan(String liuyan) {
this.liuyan = liuyan;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
@Override
public String toString() {
return "Queshu{" + "quesuid=" + quesuid + ", shu_name=" + shu_name + ", banshe=" + banshe + ", zuozhe=" + zuozhe + ", chuban_date=" + chuban_date + ", ISBN=" + ISBN + ", liuyan=" + liuyan + ", user=" + user + ", time=" + time + '}';
}
@Override
public int compareTo(Object o) {
Queshu other = (Queshu) o;
return Integer.compare(this.quesuid, other.getQuesuid());
}
}
换成 Long.parseLong 吧,格式化改成 %ld
报错信息很明显了,你的string类型的字符串转成number的时候超过最大范围了