我试图通过逐个字符地分析字符串来识别浮点数和整数,并找到整个浮点数或整数。如果我找到一个“。”那么我就不想在循环条件下使用它。

我想做这样的事情:

do
{
    if((char) nextChar == '.')
        reachedDot = true;

    integer += (char) nextChar;
    readChar();
} while(// if(reachedDot){
        // Character.isDigit(nextChar) }
        // else { (Character.isDigit(nextChar) || nextChar == '.')});

最佳答案

三元运算符应做到这一点:

do
{
    if((char) nextChar == '.')
        reachedDot = true;

    integer += (char) nextChar;
    readChar();
} while (reachedDot ? Character.isDigit(nextChar) : ((Character.isDigit(nextChar) || nextChar == '.'));


当然,这可以使用一些布尔代数来简化,因为Character.isDigit(nextChar)应该总是使循环继续进行:

do
{
    if((char) nextChar == '.')
        reachedDot = true;

    integer += (char) nextChar;
    readChar();
} while (Character.isDigit(nextChar) || (!reachedDot && nextChar == '.'));

08-05 11:22