这是我的代码。我们使用的HttpSession
也在课堂上使用,虽然有效但现在还不起作用。在for循环之后我无法打印任何内容。我使用doGet()
方法。我们需要将stringToPhone存储在会话对象中,将carrierNum存储到cookie中。
String carrier = request.getParameter("carrier");
String carrierNum = request.getParameter("carrierNum");
String stringToPhone = request.getParameter("phoneNumber");
String equiPhoNum = "";
PrintWriter out = response.getWriter();
HttpSession s1 = request.getSession();
out.println("Carrier: " + carrier);
out.println("Inputted phone number: " + stringToPhone);
String[] x = stringToPhone.split("");
int i = 0;
out.print("PHONE NUMBER: " + carrierNum + "-");
for(i = 0; i <= 7; i++){
if(x[i].equals("A") || x[i].equals("B") || x[i].equals("C") || x[i].equals("a") || x[i].equals("b") || x[i].equals("c")){
x[i] = "2";
}
if(x[i].equals("D") || x[i].equals("E") || x[i].equals("F") || x[i].equals("d") || x[i].equals("e") || x[i].equals("f")){
x[i] = "3";
}
if(x[i].equals("G") || x[i].equals("H") || x[i].equals("I") || x[i].equals("g") || x[i].equals("h") || x[i].equals("i")){
x[i] = "4";
}
if(x[i].equals("J") || x[i].equals("K") || x[i].equals("L") || x[i].equals("j") || x[i].equals("k") || x[i].equals("l")){
x[i] = "5";
}
if(x[i].equals("M") || x[i].equals("N") || x[i].equals("O") || x[i].equals("m") || x[i].equals("n") || x[i].equals("o")){
x[i] = "6";
}
if(x[i].equals("P") || x[i].equals("Q") || x[i].equals("R") || x[i].equals("S") || x[i].equals("p") || x[i].equals("q") || x[i].equals("r") || x[i].equals("s")){
x[i] = "7";
}
if(x[i].equals("T") || x[i].equals("U") || x[i].equals("V") || x[i].equals("t") || x[i].equals("u") || x[i].equals("v")){
x[i] = "8";
}
if(x[i].equals("W") || x[i].equals("X") || x[i].equals("Y") || x[i].equals("Z") || x[i].equals("W") || x[i].equals("x") || x[i].equals("y") || x[i].equals("z")){
x[i] = "9";
}
equiPhoNum = x[i] + "";
if(equiPhoNum != " " && equiPhoNum != null){
s1.setAttribute("Value1", equiPhoNum);
}
out.print(s1.getAttribute("Value1"));
}
答案 0 :(得分:0)
我建议您在检查条件之前创建equipPhoNum字符串。就目前而言,每次迭代都会检查
if(equiPhoNum != " " && equiPhoNum != null)
并记住,您使用的是默认分隔符(split“(”“),因此第一个元素将是空格" "
。所以编译器会跳过
s1.setAttribute("Value1", equiPhoNum);
然后,您要打印尚未设置的值。你肯定会得到NullPointerException
或类似的东西。
因此,将条件移到for loop
之外并再次尝试。
让我们知道结果是什么。