gpt4 book ai didi

java - 将输入的文本转换为小写

转载 作者:行者123 更新时间:2023-11-29 08:19:10 24 4
gpt4 key购买 nike

我有一个 index.jsp

[剪断]

<% 
String name = request.getParameter("name");
String pass = request.getParameter("pass");
String globalname = "webeng";
String globalpass = "2009";
if (name !=null && pass!=null && name.equals(globalname) && pass.equals(globalpass))
{
%>
<hr />
<p><b>Howdy, <%= request.getParameter("name") %></b></p>
<hr />
<% }
else if (name !=null | pass!=null && name.equals("") | pass.equals(""))
{
%>
<hr />
<p><b>Ooops, one or more fields are empty. Please fill everything out!!</b></p>
<hr />
<% }
else if (name !=null | pass!=null && !name.equals(globalname) | !pass.equals(globalpass))
{
%>
<hr />
<p><b>Incorrect Userdata!</b></p>
<hr />
<% }
else{
}
%>

[剪断]

现在,例如全局名称是小写的“webeng”。人们可以输入“WebEng”、“webENG”、“WEBENG”及其变体。

我需要将那些输入的字符串转换为小写。不知何故

String newname = name.toLowerCase();
String newpass = pass.toLowerCase();

不工作。有人知道吗?

这是我使用时Eclipse告诉我的

<% 
String name = request.getParameter("name");
String pass = request.getParameter("pass");
String globalname = "webeng";
String globalpass = "2009";
String newname = name.toLowerCase();
String newpass = pass.toLowerCase();

if (name !=null && pass!=null && name.equals(globalname) && pass.equals(globalpass))
{
%>
<hr />
<p><b>Howdy, <%= request.getParameter("name") %></b></p>
<hr />
<% }
else if (name !=null | pass!=null && name.equals("") | pass.equals(""))
{
%>
<hr />
<p><b>One or more fields are empty!</b></p>
<hr />
<% }
else if (name !=null && pass!=null && !name.equals(globalname) | !pass.equals(globalpass))
{
%>
<hr />
<p><b>Incorrect Userdata!</b></p>
<hr />
<% }
else{
}
%>

eclipse :http://i.imagehost.org/0277/2009-11-15_19_34_00.png

最佳答案

你的代码逻辑很奇怪。 Scriptlets 也不会使测试更容易。这是一个 SSCCE以真正的 Java 类的形式启动和简化测试:

public class Test {

public static void main(String[] args) throws Exception {
String user = "WeBeNg"; // Change this as if it is user input.
String pass = "2009"; // Change this as if it is user input.

String expectedUser = "webeng";
String expectedPass = "2009";

if (user == null || pass == null || user.isEmpty() || pass.isEmpty()) {
System.out.println("Please enter both username and password.");
} else if (user.equalsIgnoreCase(expectedUser) && pass.equals(expectedPass)) {
System.out.println("Welcome " + user);
} else {
System.out.println("Unknown login.");
}
}

}

希望这对您有所帮助。

编辑 #1:请不要发布屏幕截图。在代码块中复制粘贴异常和堆栈跟踪。顺便说一句,异常(exception)不是来自 Eclipse。它来自 Tomcat。此外,所讨论的异常 (NullPointerException) 是不言自明的。您访问了一个实际上为空的对象引用。

SomeObject someObject = null;
someObject.doSomething(); // Fails with NPE.
someObject = new SomeObject();
someObject.doSomething(); // Succes.

您需要先进行空检查,例如

if (someObject != null) {
someObject.doSomething(); // Succes.
}

编辑 #2 我还建议您了解 Java 中的运算符、运算符优先级和表达式分组。看,以下是不“合乎逻辑的”

if (name !=null | pass!=null && name.equals("") | pass.equals(""))

这里有一个很好的教程,可以开始学习这方面的知识:http://java.sun.com/docs/books/tutorial/java/nutsandbolts/operators.html祝你好运。

关于java - 将输入的文本转换为小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1738294/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com