我试图通过逐个字符地分析字符串来识别浮点数和整数,并找到整个浮点数或整数。如果我找到一个“。”那么我就不想在循环条件下使用它。
我想做这样的事情:
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 == '.'));