2014-06-25 66 views
-1

我想獲得一個If語句在java中工作。搜索字符串一段時間。 Java

我有一個String startTime;

我想使它如此06:00至9:59爲峯值的時間和其他一些時間,但我只想得到一個if語句工作的權利第一

我使用

*if (startTime >= "06:00" && startTime <= "9:59");* 

我知道,串真的不搜索這樣的,但我對我們能夠使用字符串來完成這項任務很容易的教練告訴記者。我還被告知只能使用的主要方法不使用其他類

談到了:

**the operator >= is undefined for the argument type(s) java.lang.String, java.lang.String** 
+0

的編譯錯誤,應該是在這種情況下清楚,你不能使用比較操作符與非基本數據類型(在這種情況下,字符串)。我不覺得用Strings很容易做到這一點,除非它們被傳遞給解析時間和日期的其他對象的構造函數。 – Kon

+1

最好的解決辦法是,如果您轉換您的字符串日期,然後比較它們 – user902383

+0

'String'不能使用關係運算符來比較(即'> =','<='等) – Setu

回答

1

使用String.compareTo做到這一點。

if (startTime.compareTo("06:00")>0 && startTime.compareTo("09:59")<0) ...; 
+0

感謝以及其不來了現在是錯誤,是的,謝謝你的建議。 – TPCM

+0

,它不會一直工作,例如「09:59」.compareTo(「9:59」)將返回一個小於0的數字;所以if語句出錯了。你應該首先將字符串轉換爲日期或整數 – nafas

+0

@nafas感謝您指出,它應該是09:59(假設字符串也是相同的格式) - 從問題中複製一個小錯誤。修正了。 –

-1

字符串是一個對象,它不具有運營商如<=>=

您可以使用equals()equalsIgnoreCase()方法比較兩個字符串,否則您可以使用==檢查字符串的引用。

對於您的情況,由於您正在比較兩個字符串,因此除非將其轉換爲Java Date對象或Double對象,否則您也可以使用compareTo()方法,您將無法確定一個字符串是否大於其他字符串。

+0

爲什麼-1,請讓我知道我的回答是否有問題,這樣我也可以學習。 –

+0

我打算使用一個double,但後來無法繞過冒號,所以我放棄了這個。然後我要使用公曆日期對象,但講師說我們現在可以使用字符串是最簡單的方法。所以我走了,我會嘗試,但無法弄清楚如何搜索,現在看起來很簡單。 – TPCM

+0

是的,但我認爲它不應該導致-1。我給出了不同的選項,您可以通過它們比較包含數字的對象。你的選擇。謝謝。 –

0

首先,你應該把時間像他們的數字。 6:00是6.00,而9:59將9.59.To爲此,請使用:

startTime = startTime.replace all(":", "."); 
int startTimeInt = Integer.parseInt(startTime); 
if (startTimeInt >= 6.00 && startTimeInt <= 9.59) { 
    // do stuff 
} 

只需更換「//做的東西」與當條件爲真不管發生什麼事。

+0

我問,作爲一個問題天氣,我們可以使用一個。而不是一個:我被告知它必須是: – TPCM

0

打破你的字符串到小時和分鐘(使用String.split),然後轉換成兩整數(使用的Integer.parseInt),則比較容易。