char无法解除引用charAt()。compareTo()

时间:2016-01-27 13:48:57

标签: java

public static void main(String[] args)
{
    Scanner in= new Scanner(System.in);
    String time= in.nextLine();
    String arr[]=time.split(":");
   // System.out.println(arr[0]);
    String PM="P";
    if(!(arr[2].charAt(2)).compareTo(PM)) //I get an error here 
        {
        arr[0]+=12;
        System.out.print(arr[0]+":"+arr[1]+":"+arr[2]);
    }
    if((arr[2].charAt(2)).compareTo(PM)!=0) //I get an error here
        {
        System.out.print(arr[0]+":"+arr[1]+":"+arr[2]);
    }
}

请帮我删除错误! 我基本上要检查的是时间输入是AM还是PM。

2 个答案:

答案 0 :(得分:0)

char没有compareTo方法 - 或任何方法,因为它是原始的。

您可以使用<>==等关系运算符比较基元。

由于PM是单字符字符串,您还可以将其类型更改为char:

char PM = 'P';

然后只需使用!=进行比较,例如

if (arr[2].charAt(2) != PM) {
   // .. whatever.

答案 1 :(得分:0)

.charAt()返回char,而char的行为与较小int的行为相同,请尝试使用此功能:

   if(!(arr[2].charAt(2) == PM.charAt(0))) {
    ...

而不是:

   if(!(arr[2].charAt(2)).compareTo(PM))