2014-06-25 68 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),则比较容易。