ここで大きな問題を抱えています。基本的に私がしなければならないことは、ユーザーに数字を入力させることです...プログラムは数字を受け取り、それが負か正かを読み取ります。負の場合、以前に偽だった negval を真に設定して先に進みます。次に、番号を再度読み取り、先行ゼロをチェックし、存在する場合は削除します。次に、残っているものを取り、文字列が声に出して最大文字数より少ないかどうかを確認します。そうである場合は、スペースをカウントするためにループし、スペースをカウントしながら、それらが digits であることも確認します。文字列が許容される文字数よりも大きい場合、プログラムはチェックを停止し、0 を出力します。
私の問題は、文字列の長さが有効な長さであっても、0 の出力にジャンプし続けることです。
これが私が持っているものです。
String snum;
System.out.print("Please enter a number here : ");
snum = console.next();
System.out.println(getIntnum(" The number entered was: "+snum));
その他の一般的なもの
final String maxInt = "2147483648";
final String minInt = "-2147483648";
boolean negval = false;
int n;
int count;
int num = 1;
int value;
if(snum.charAt(0) == '-' || snum.charAt(0) == '+')
{
if(snum.charAt(0) == '-')
{
negval = true;
}
else
{
snum = snum.substring(1, snum.length());
}
}
while (snum.charAt(0) == '0')
{
snum = snum.substring(1, snum.length());
}
n = snum.length( );
if (n < 10)
{
count = 0;
if (count < n)
{
if (Character.isDigit(snum.charAt(count)))
count++;
}
}
else
{
num = 0;
}
if(maxInt.compareTo(snum) >= 0 && minInt.compareTo(snum) <= 0)
{
num = Integer.parseInt(snum);
}
if(negval == true)
{
num = num * -1;
}
value = num;
return value;
}
}