奇怪了...比较字符串的问题?在线等
String sta_no=(String)request.getParameter("s_station");
out.print(sta_no);//结果都是aa,可是就是if判断却不等,去执行else的代码了?
if (sta_no="aa"){..}
else{..}
问题点数:50、回复次数:21Top
1 楼java_augur(听着音乐 ☆☆☆☆☆☆)回复于 2005-01-31 10:29:54 得分 0
= ------> ==Top
2 楼steedhorse(晨星)回复于 2005-01-31 10:30:36 得分 10
if(sta_no.equals("aa"))Top
3 楼yxhzj(余华[学习J2EE中])回复于 2005-01-31 10:32:38 得分 0
String sta_no=(String)request.getParameter("s_station");
out.print(sta_no);//结果都是aa,可是就是if判断却不等,去执行else的代码了?
if (sta_no.equals("aa"))
{ ..}
else
{..}Top
4 楼r1233211234567()回复于 2005-01-31 10:33:27 得分 0
getParameter()取得值是否存在!
你先打印sta_no是否是null值!
Top
5 楼r1233211234567()回复于 2005-01-31 10:34:10 得分 0
==Top
6 楼steedhorse(晨星)回复于 2005-01-31 10:34:18 得分 10
对于String a, b;
“a == b”用于判断变量a和b是否引用到同一个对象,或者都是null。(Java里头除了内建类型的变量外,其他的都是引用)
“a.equals(b)”用于判断a所引用的串和b所引用的串是否包含相同的内容(只是内容相同,不一定是同一个串)。Top
7 楼loveyousomuch(★Allen★)回复于 2005-01-31 10:34:32 得分 10
呵呵,基本语法问题
不过,得到页面的参数后,最好是做必要的处理,以免不必要的麻烦
String sta_no=request.getParameter("s_station");
sta_no=(sta_no!=null&&!sta_no.equals(""))?sta_no.trim():"";
if(sta_no.equals("aa")){
......
}else{
......
}Top
8 楼r1233211234567()回复于 2005-01-31 10:35:26 得分 0
应该用equals.()来比较!==比较的是地址,equals.()比较的是值
Top
9 楼jcw2016(稻草人)回复于 2005-01-31 10:35:35 得分 0
用equals函数来比较两个字符串Top
10 楼loveyousomuch(★Allen★)回复于 2005-01-31 10:36:41 得分 10
嘿嘿,jdk1.3的版本可以用"==",
后面的版本不行了,
不过得到参数后最好是做必要的处理,以免引起不必要的错误:
String sta_no=request.getParameter("s_station");
sta_no=(sta_no!=null&&!sta_no.equals(""))?sta_no.trim():"";
Top
11 楼li_d_s(鄙视那些不懂Java却跑来乱骂的人,.NET没啥了不起)回复于 2005-01-31 10:37:03 得分 0
对,==判断的是存储地址,equals判断的才是内容Top
12 楼Hannibal005(寒泥巴)回复于 2005-01-31 10:37:20 得分 0
if (sta_no.compareTo("aa")==0)Top
13 楼mu_x(阿木)回复于 2005-01-31 10:41:43 得分 0
比较字符串是否相等用equals方法。Top
14 楼xitianjile(空想社會主義)回复于 2005-01-31 10:46:12 得分 0
==是比地址的!!Top
15 楼java_augur(听着音乐 ☆☆☆☆☆☆)回复于 2005-01-31 10:50:35 得分 5
class test_equal{
public static void main(String[] args){
if(a == b){
System.out.println("it's equal");
}
else
System.out.println("it's not equal");
}
private static String a="string";
private static String b="string";
}
所有相同的String指向同一地址。
it's equalTop
16 楼osborne(做人要本份!)回复于 2005-01-31 10:51:55 得分 0
Java中String是一个对象, 你要比较时需要equals来进行, 直接用==号的话, 比较的是地址!Top
17 楼cuilichen(fjfjfjfj)回复于 2005-01-31 10:56:52 得分 0
用equals函数来比较两个字符串,"=="比较得到的是两个对象的reference指向的是不是同一个目标。
Top
18 楼jockhuang(黄昏)回复于 2005-01-31 11:06:54 得分 5
非空的话trim()一下再比较。
btw:一般用常量去比,可以不用判断是否空值.
if ("aa".equals(sta_no))Top
19 楼Sunboyjava(阳光男孩)回复于 2005-01-31 11:27:44 得分 0
说了这么。。。我给个建议。。。
那就是。。快结帖吧。。Top
20 楼mouselshl()回复于 2005-01-31 11:49:21 得分 0
谢谢...........Top
21 楼shan1119(大天使,卐~解!)回复于 2005-01-31 11:53:56 得分 0
if(sta_no.equals("aa"))Top




