if (code.equals(Acode)) 也会提示“预约码不匹配”
时间: 2023-11-30 10:03:31 浏览: 25
如果输入正确的YYM,但是还是提示“预约码不匹配”,可能是因为查询到的`Acode`值中包含了空格或其他不可见字符。比如,如果`Acode`的值是"123 ",而`code`的值是"123",那么使用`code.equals(Acode)`比较的结果是false,因为字符串的比较是区分空格和其他不可见字符的。
为了避免这种情况,可以使用`trim()`方法去掉字符串中的空格和其他不可见字符,再进行比较。修改代码如下:
```
if (code.trim().equals(Acode.trim())) {
```
这样就可以忽略不可见字符对比较结果的影响了。
相关问题
<% String code = String.valueOf(request.getParameter("YYM")); System.out.print(code); if (code == null || code.isEmpty()) { %> <a href="Admin.jsp">请输入预约码,点击返回签到</a> <% } else { Connection conn = SQLConn.openDB(); final String SELECT_SQL = "SELECT ACode FROM User_ZC JOIN YuYue ON User_ZC.UserId = YuYue.UserId WHERE Login = 1 AND State = 1 AND Arrive IS NULL"; final String UPDATE_SQL = "UPDATE YuYue SET Arrive =1 WHERE ACode = ?"; PreparedStatement pstmtSelect = conn.prepareStatement(SELECT_SQL); ResultSet rs = pstmtSelect.executeQuery(); int count = 0; while (rs.next()) { String Acode = rs.getString("ACode"); if (code==Acode) { try { PreparedStatement pstmtUpdate = conn.prepareStatement(UPDATE_SQL); pstmtUpdate.setString(1, code); count = pstmtUpdate.executeUpdate(); pstmtUpdate.close(); } catch (SQLException e) { e.printStackTrace(); } break; }else{ System.out.print("预约码不匹配"); } } if (count > 0){ %> <a href="Admin.jsp">签到成功</a> <% } else { %> <a href="Admin.jsp">签到失败</a> <% } rs.close(); pstmtSelect.close(); conn.close(); } %>为什么输入正确的YYM,也会提示“预约码不匹配”
在Java中,当比较两个字符串对象时,应该使用equals()方法,而不是"=="运算符。在这段代码中,比较code和Acode的地方使用了"=="运算符,这可能会导致比较结果不正确。正确的方式是使用equals()方法进行比较,即将
```
if (code==Acode) {
```
改为
```
if (code.equals(Acode)) {
```
这样就可以正确地比较code和Acode的内容是否相同了。
if(request.equals(one)
It seems that the code you have provided is incomplete and lacks context for me to understand what it is trying to accomplish. Can you provide more information or code context so that I can better assist you?