Как я могу проверить, имеет ли строка +, - или.(десятичный) в первом знаке? - PullRequest
0 голосов
/ 27 февраля 2019

Я пишу программу, которая определит, является ли двойной литерал 4 символа, и выведет его на экран.Я считаю, что сделал ту часть, где я проверю, есть ли ровно 4 символа.Я застрял на том, как проверить, если +, - или.это первый персонаж.С моим str.charAt(0) == "+" || "-" || "." я получаю сообщение о несовместимом операнде.

public class Program4 {

    public static void main(String[] args) {



    Scanner stdIn = new Scanner(System.in);

    String str;

    System.out.println("Please enter a valid (4 character) double literal consisting of these numbers and symbols: '+', '-', '.', (decimal point), and '0' through '9'");

    str = stdIn.nextLine();
    int length = str.length();

    // the next if statement will determine if there are exactly 4 characters \\
    if ( length == 4 ) { 

        // the next if statement checks for a +, -, or . (decimal) in the first character \\
        if ( str.charAt(0) == "+" || "-" || ".") {

        }
    }


    else {  

        System.out.println ("Please restart the program and enter in a valid 4 character double literal.");

    }

    }
}

Ответы [ 3 ]

0 голосов
/ 27 февраля 2019

Это ...

    if ( str.charAt(0) == "+" || "-" || ".") {

... не имеет смысла.Операнды оператора || должны быть boolean с.Выражение str.charAt(0) == "+" оценивается как boolean, но две строки, стоящие сами по себе, этого не делают.

Существует множество способов решения этой проблемы, и какой из них наиболее целесообразен для вас, зависит от контекста.Тем не менее, один способ пойти на это использует тот факт, что строковые литералы String s, как и любой другой, на котором вы можете вызывать методы.Например indexOf():

if ("+-.".indexOf(str.charAt(0)) >= 0) {
    // starts with +, -, or .
}
0 голосов
/ 27 февраля 2019

Другой способ:

switch ( str.charAt(0) ) {
  case '+': case '-': case '.':
    <do something>
    break;
}
0 голосов
/ 27 февраля 2019

заменить if ( str.charAt(0) == "+" || "-" || ".") {

на

`if ( str.charAt(0) == '+' || str.charAt(0)=='-' || str.charAt(0)=='.') {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...