package X3DBuilder;
目前創(chuàng)新互聯(lián)已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、賀州網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
import java.io.*;
public class X3DCreator
{
public int xBins;
public int yBins;
public int i;
public int k;
public float min =0;
public float max = 0;
public double xSpacing;
public double zSpacing;
public double scalefactor;
public float[][] data;
public float[][] data2;
public float[] data1;
public X3DCreator() throws IOException
{
//導(dǎo)入文件test1513.data,并建立通向test1513.data的輸入流
BufferedReader in = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("test1513.data")));
//從文件中讀取第一行,并且將其格式化成數(shù)字xBins
xBins = Integer.parseInt(in.readLine());
//從文件中讀取第二行,并且將其格式化成數(shù)字yBins
yBins = Integer.parseInt(in.readLine());
//算法,計(jì)算兩數(shù)各自減一后的倒數(shù)
xSpacing = 1.0/(xBins-1);
zSpacing = 1.0/(yBins-1);
//將兩數(shù)分別儲(chǔ)存到數(shù)組data 中
data = new float[xBins][yBins];
//將兩數(shù)的乘積儲(chǔ)存到數(shù)組data1 中
data1 = new float[xBins*yBins];
//將兩數(shù)分別儲(chǔ)存到數(shù)組data2 中
data2 = new float[yBins][xBins];
for (i=0; ixBins; i++)
for (int j=0; jyBins; j++){
//繼續(xù)從文件的第三行開(kāi)始一行一行讀取信息.并將讀出的數(shù)據(jù)放在data中
data[i][j] = Float.parseFloat(in.readLine());
//通過(guò)多次循環(huán)比較獲得數(shù)組data中的最大值并賦值給max
if (max data[i][j])
max = data[i][j];
//通過(guò)多次循環(huán)將二維數(shù)組data中的數(shù)據(jù)全部放置到數(shù)組data1中
data1[k]= data[i][j];
k=k+1;
}
//賦值max的倒數(shù)給scalefactor
scalefactor = 1.0/max;
//關(guān)閉讀取文件的流對(duì)象
in.close();
//打印data1的第16 個(gè)元素
System.out.println(data1[16]);
//打印data所有元素的個(gè)數(shù)
System.out.println(k);
for (i=0; iyBins; i++)
for (int j=0; jxBins; j++){
//循環(huán)賦值
data2[i][j] = data1[j*yBins+i];
}
//創(chuàng)建寫(xiě)入文件test.x3d的流
BufferedWriter fout = new BufferedWriter(new FileWriter("test.x3d"));
//創(chuàng)建讀取文件x3d1.txt的流
BufferedReader in2 = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("x3d1.txt")));
String inputLine;
while ((inputLine = in2.readLine()) != null) {
//fout.write(inputLine);
//一行一行把從文件x3d1.txt讀取的字符串寫(xiě)入文件test.x3d。
fout.append(inputLine);
//寫(xiě)入一個(gè)行分隔符,也就是換行。
fout.newLine();
}
fout.newLine();
//下面應(yīng)該是寫(xiě)入一些xml內(nèi)容
fout.append("ElevationGrid height ='");
for (i=0; iyBins; i++)
for (int j=0; jxBins; j++)
{
// fout.append(" "+scalefactor*data2[i][j]+" ");
fout.append(" "+data2[i][j]+" ");
}
fout.append("'");
fout.append(" xDimension='" + xBins + " ' ");
fout.append(" xSpacing='" + xSpacing + " '");
fout.append(" zDimension='" + yBins + "' ");
fout.append(" zSpacing='" + zSpacing + "'/ ");
fout.newLine();
//關(guān)閉讀取流
in2.close();
// BufferedWriter fout2 = new BufferedWriter(new FileWriter("test.svg",true));
BufferedReader in3 = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("x3d2.txt")));
String inputLine2;
while ((inputLine2 = in3.readLine()) != null) {
//繼續(xù)將文件x3d2.txt的內(nèi)容也寫(xiě)入到test.x3d中
fout.append(inputLine2);
fout.newLine();
}
//關(guān)閉讀取文件流
in3.close();
//關(guān)閉寫(xiě)入文件流.
fout.close();
}
}
//結(jié)束
public static String format(long paramLong)//paramLong是一個(gè)傳遞進(jìn)來(lái)的long型整數(shù)
{
int i = 60 * 60;定義i=60乘60就是3600
long l1 = paramLong / i;定義l1等于paramLong除以i
long l2 = (paramLong - l1 * i) / 60;定義
long l3 = paramLong - l1 * i - l2 * 60;定義
String str1;聲明字符串
label64: String str2;label是監(jiān)聽(tīng)
if (l1 10L)如果l1小于10
{
str1 = "0" + l1;字符串拼接
if (l2 = 10L)如果l2大于等于10
break label175;結(jié)束監(jiān)聽(tīng)
str2 = "0" + l2;字符串拼接
label92: if (l3 = 10L)監(jiān)聽(tīng)如果l3大于等于10
break label195;結(jié)束監(jiān)聽(tīng)
}
for (String str3 = "0" + l3; ; str3 = l3)for循環(huán),
{
return str1 + ":" + str2 + ":" + str3;
str1 = l1;
break label64:
label175: str2 = l2;
label195: break label92:
}
}
主要研究一下監(jiān)聽(tīng)是怎么用的吧
添加和更新用戶代碼:
……
else if(method.equals("manager")){ //判斷提交的action中的method是否是manager
String username2 = (String)session.getAttribute("user"); //接受到session里存放的user
if(username2 == null){ //判斷用戶名是否為空
request.getRequestDispatcher("error.jsp").forward(request, response); //如果用戶名為空則跳轉(zhuǎn)到error.jsp頁(yè)面
}
else{
String ra = request.getParameter("ra").trim(); //獲得請(qǐng)求中為ra的值
if(ra.equals("add")){ //判讀ra是否是add
String username = request.getParameter("username").trim(); //接受用戶名
String password = MD5.MD5(request.getParameter("password").trim()); //接受用戶密碼并進(jìn)行MD5加密
String isuse = request.getParameter("isuse").trim(); //接受用戶的狀態(tài)
if(isuse.equals("在用")) //判斷isuse的狀態(tài)是否是“再用”
isuse = "1"; //如果isuse的狀態(tài)是“再用” 賦值給isuse為1
else
isuse = "2"; //如果isuse的狀態(tài)不是“再用” 賦值給isuse為2
int flag = loginbean.addManager(username, password, "2", isuse); //定義flag 用來(lái)記錄 addManager方法是否正確執(zhí)行
if(flag == Constant.SUCCESS){ //根據(jù)flag值 判斷添加管理員是否成功 如果flag值與Constant.SUCCESS相同則添加成功
request.setAttribute("message", "增加管理員成功!");
request.getRequestDispatcher(sysdir+"/system/user.jsp").forward(request, response);
}
else if(flag == Constant.SAME_NAME){ //根據(jù)flag值 判斷添加管理員是否成功 如果flag值與Constant.SAME_NAME相同則表示用戶名已經(jīng)存在
request.setAttribute("username", username);
request.setAttribute("message", "該用戶名已經(jīng)存在!");
request.getRequestDispatcher(sysdir+"/system/user.jsp").forward(request, response);
}
else{ //根據(jù)flag值 判斷添加管理員是否成功 如果flag值既不與Constant.SUCCESS相同也不與Constant.SUCCESS相同 則添加失敗 返回信息:系統(tǒng)維護(hù)中
request.setAttribute("message", "系統(tǒng)維護(hù)中,請(qǐng)稍后再試!");
request.getRequestDispatcher(sysdir+"/system/user.jsp").forward(request, response);
}
}
else if(ra.equals("update")){ //獲得請(qǐng)求中為ra的值 如果是update 修改
String username = request.getParameter("username").trim();
String password = request.getParameter("password").trim();
String isuse = request.getParameter("isuse").trim();
if(!password.equals("")){ //判斷用戶密碼 如果不為空 則經(jīng)過(guò)MD5加密
password = MD5.MD5(password);
}
if(isuse.equals("在用"))
isuse = "1";
else
isuse = "2";
int flag = loginbean.updateManager(username, password, "2", isuse); //根據(jù)flag值 判斷修改管理員是否成功
if(flag == Constant.SUCCESS){ //根據(jù)flag值 判斷修改管理員是否成功 如果flag值等于Constant.SUCCESS的值 則修改成功 跳轉(zhuǎn)到user.jsp頁(yè)面并提示 修改管理員信息成功
request.setAttribute("message", "修改管理員信息成功!");
request.getRequestDispatcher(sysdir+"/system/user.jsp").forward(request, response);
}
else{ //根據(jù)flag值 判斷修改管理員是否成功 如果flag值不等于Constant.SUCCESS的值 則修改不成功 跳轉(zhuǎn)到user.jsp頁(yè)面并提示 系統(tǒng)維護(hù)中,請(qǐng)稍后再試!
request.setAttribute("message", "系統(tǒng)維護(hù)中,請(qǐng)稍后再試!");
request.getRequestDispatcher(sysdir+"/system/user.jsp").forward(request, response);
保證hashCode 不同的算法,很多人都研究這個(gè)算法,算法很多
這個(gè)怎么保證的我不知道
但是我可以給你解釋下算式
int 是4位byte的 4*8=32bit 一也注意到了12+20=32
h ^= (h 20) ^ (h 12);意味著h=h的前12位不變+中間的8位位中間的8位和前8位異或值+后12位為后12位和前間12位和9-20位的異或值(+不是加法是連接,一共32位)
h ^ (h 7) ^ (h 4); 之后再用類似的方式
新h=前4位不變+前3位和5-7位異或值+前25位和后25位和4-28位的異或值