2014-11-05 157 views
-1

所以我正在研究一個java項目,我只是一個簡單的問題。Java:驗證字符串

我有一個方法是接收一個字符串,我想刪除空格並檢查是不是空的。到目前爲止,我有下面的地方,但它似乎沒有正常工作。

public static Boolean isValid(String s) { 
    s.replace(" ", ""); 
    if (s == ""){ 
     return false; 
    } 
    else { 
     return true; 
    } 
} 

任何幫助,將不勝感激:) 鉭

+3

而不是's ==「」'use'「」.equals(s)' – EpicPandaForce 2014-11-05 11:16:39

回答

2

首先,您忘記了s.replace(" ","")的作業。將它存儲在一個變量中,例如

x = s.replace(" ",""); 

對於字符串比較使用.equals()方法,而不是==

+1

謝謝,知道它會傻傻的哈哈 – 2014-11-05 11:34:15

+0

沒問題,很高興幫助:) – Haris 2014-12-03 11:57:28

6

你可以用這個嘗試:

public static Boolean isValid(String s) { 
    return (!s.trim().isEmpty()); 
} 
+0

實際上,這隻會刪除前導和尾隨空格。 's.replace()'也會替換字符串中間的空格。 – Magnilex 2014-11-05 11:25:04

+0

@Magnilex如果字符串中間有一個空格,那麼字符串中就會有非空白字符......結果是一樣的! – vefthym 2014-11-05 11:27:51

+1

當然可以。你是對的。+1爲最優雅的解決方案。 – Magnilex 2014-11-05 11:37:33

1

您可以使用下面的代碼,以及:

newString=myString.replaceAll("\\s+",""); 這消除字符串之間的一個或多個空格以及前導空白和尾隨空格

用途:myString.trim()只有開頭和結尾的空格

然後newString.isEmpty()

您應該使用.equals()比較字符串

1

當你比較字符串,使用.equals()刪除。 它只有在artihmetic表達式使用==標誌

檢查您的字符串是否爲空使用.isEmpty()功能

1

你忘了分配:

s = s.replace(" ", ""); 

編輯: 的意見指出, ==不起作用。我想說它適用於Java 7

1

的replaceAll()方法支持正則表達式和的isEmpty()已經存在的String類,所以我們可以重新使用它,是安全的在這裏使用。

簡單地使用這樣的:

equals和==差異櫃面的
public static Boolean isValid(String s) { 
    s = s.replaceAll("\\s", ""); 
    if (s.isEmpty()) { 
     return false; 
    } 
    else { 
     return true; 
    } 
} 
0

字符串比較在s.replace(的thread

值很好地解釋)應該被分配給其自身或一些其他變量。