我写了如下一个方法,但是用起来有问题,帮我看看!!

usaspy 2003-09-15 09:49:19
我写了个方法,准备实现把从表单中提取的值拼接成Where字符串,用于生成查询条件。因为一般界面提供很多查询条件选择。但不一定需要全填上。
<%!
int uniteStr;
public String OperationStr(String str){
if (str != ""){
uniteStr = str;
}
else{
uniteStr = uniteStr + " and " +str;
}
return uniteStr;
}
%>

<%
.
..
...
String a = rs.getString("Username");
uniteStr = OperationStr(a);

String b = rs.getString("Password");
uniteStr = OperationStr(b);

out.print(uniteStr);
%>

Username:lion
Password:1982

我希望得到的结果是:
lion and 1982
但实际上是:
1982 lion

...全文
39 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
junyi2003 2003-09-15
  • 打赏
  • 举报
回复
<%!
/*
*函数中最好不要用外部参数。不利于函数的反复使用。我只提供思路,呵呵。
*下面的逻辑可能会有问题,不要说我笨就可以了。^_^
*/
String uniteStr="";
public String OperationStr(String str1,str2){
if(str2 != null && str2.equal("")){
//uniteStr = str;
}
else{
str2 = str1 + " and " +str2;
}
return str2;
}
%>
junyi2003 2003-09-15
  • 打赏
  • 举报
回复
呵呵,自己思考比较好。
建议养成比较良好的编程习惯--注意书写格式.第一段中uniteStr这个变量应定义为String.

还有一点:你的函数其实不需要返。你在函数中修改了uniteStr的值,再返回是多余的。

如果要return的话,应该return str;这样结构会好看点。

PS:只是我的一点建议。本人很菜,交流一下我的菜鸟的经验。
dooluby 2003-09-15
  • 打赏
  • 举报
回复
if (str != null || !(str.equal("")))
不老书生 2003-09-15
  • 打赏
  • 举报
回复
上面的错了
if (str != "" && uniteStr.equal(""))没有意义!!!

string 类型用!=多半会出错!
应该if (!uniteStr.equal(""))

但是我觉得楼主本身逻辑就出错了!
<%
string uniteStr;
public String OperationStr(String str){
if (!str.equals("")){
uniteStr = str;
}
else{
uniteStr = uniteStr + " and " +str;
}
return uniteStr;
}
%>
mtou 2003-09-15
  • 打赏
  • 举报
回复
<%!
String uniteStr="";
public String OperationStr(String str){
if (str != "" && uniteStr.equal("")){
uniteStr = str;
}
else{
uniteStr = uniteStr + " and " +str;
}
return uniteStr;
}
%>

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧