charAt().equals() zorgt ervoor dat char niet kan worden verwijderd

Ik probeer een tekenreeks te controleren op koppeltekens op verschillende posities (voor een telefoonnummer omdat de invoer varieert), maar ik krijg steeds de foutmelding

char kan niet worden verwijderd

Code:

do {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Enter String");
    String raw = br.readLine();
    if (raw.length() < 10) {
        System.out.println("");
        System.out.println("Please input a valid phone number of at least 10 digits/letters");
        System.out.println("");
    } else {
        if (raw.charAt(3).equals('-') && raw.charAt(7).equals('-')) {
            System.out.println("2 Hyphens at 3 and 7");
        } else if (raw.charAt(3).equals('-')
                && raw.charAt(8).equals('-')) {
            System.out.println("2 Hyphens at 3 and 8");
        } else if (raw.charAt(3).equals('-')
                && raw.charAt(9).equals('-')) {
            System.out.println("2 Hyphens at 3 and 9");
        }
    }
} while (1 < 2);

Antwoord 1, autoriteit 100%

Als je zoiets als dit gebruikt, zal het werken:

  if (raw.charAt(3) == '-' && raw.charAt(7) == '-') {
      System.out.println("2 Hyphens at 3 and 7");
  } else if (raw.charAt(3) == '-' && raw.charAt(8) == '-') {
      System.out.println("2 Hyphens at 3 and 8");
  } else if (raw.charAt(3) == '-' && raw.charAt(9) == '-') {
      System.out.println("2 Hyphens at 3 and 9");
  }

Het probleem is dat raw.charAt(n) een char retourneert en niet een String. De methode equals() kan alleen op objecten worden gebruikt. Char is een primitief gegevenstype dat geen methoden heeft. Voor tekens moet u operators gebruiken zoals == of !=.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Other episodes