討論區快速選單
知識庫快速選單
程式設計俱樂部Facebook粉絲團 軟體開發過程中有哪些資安漏洞?
[ 回上頁 ] [ 討論區發言規則 ]
關於NULL及空字串問題
更改我的閱讀文章字型大小
作者 : love007002()
[ 貼文 35 | 人氣 1891 | 評價 0 | 評價/貼文 0 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/5/19 下午 09:35:58
public class employee {

private int id;
private String name;

public void setId (int id) {
if (id < 0) {
System.out.println("員工編號只允許大於或等於0");
} else {
this.id = id;
}
}

public int getId () {
return this.id;
}

public void setName (String name) {
if(name == "") {
System.out.println("姓名不能是空字串");
} else {
this.name = name;
}
}

public String getName () {
return this.name;
}
}

public class employeeMain {
public static void main(String args[]) {
employee emp = new employee();

emp.setId (1);
// emp.setName("");
emp.setName(new String(""));

System.out.println("員工編號:" + emp.getId());
System.out.println("員工姓名:" + emp.getName());

}
}

------------------------------------------------------------------------------------------------------------------------------------
同樣在設定name時, 傳入的參數都為空字串, 為何會有所差異??
如果以emp.setName(""); 方式, 印出來則 NULL
如果以emp.setName(new String("")); 方式, 印出來則 空字串
且為何不會印出我所設定的條件, 印出 姓名不能是空字串

請各位大大是否可以幫忙我提示或解釋嗎?
謝謝.
作者 : mcdstyle(深海)
[ 貼文 3 | 人氣 0 | 評價 30 | 評價/貼文 10 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/7/17 上午 10:00:37
在Java "==" 是用來判斷是否參考同一個物件,判斷字串值相等可以用equals方法,建議可以改成:

if(name==null || name.trim()){
    System.out.println("姓名不能是空字串")
}else{
    ......
}

這樣可以防止null,輸入空字串及輸入空白鍵。
作者 : mcdstyle(深海)
[ 貼文 3 | 人氣 0 | 評價 30 | 評價/貼文 10 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人love007002註記此篇回應為最佳解答 2013/7/24 上午 09:09:38
寫錯了,下面這個才對

在Java "==" 是用來判斷是否參考同一個物件,判斷字串值相等可以用equals方法,建議可以改成:

if(name==null || name.trim().equals("")){
    System.out.println("姓名不能是空字串")
}else{
    ......
}

這樣可以防止null,輸入空字串及輸入空白鍵。
 板主 : 風月
 > Java入門一般區 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - Java入門一般區 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
Java入門一般區
1 洋將 2410 
2 Aron 2130 
3 Aries 1510 
4 DEMO999 1310 
5 Ben 990 
6 ramb 620 
7 ozzy 570 
8 tand 460 
9 Huah 410 
10 vindy 400 
Java入門一般區
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.046875