Java-ascii校验

Java-ascii校验,java,ascii,Java,Ascii,我有下一个代码: t= (int)(Math.random()*8+1)+96; //ascii table if (t!= 96){ choose[(int)(t-97)] = 1; r[0] = (char)t;} } 我尝试在r[0]中,只有从b到h的字符是不允许的。当我运行它时,我看到有时r[0]包含“a”。原因可能是什么?'a'是,你并没有阻止它 为什么不先选择一个从98‘b’到1

我有下一个代码:

        t= (int)(Math.random()*8+1)+96; //ascii table
        if (t!= 96){
                choose[(int)(t-97)] = 1;
                r[0] = (char)t;}
    }
我尝试在r[0]中,只有从b到h的字符是不允许的。当我运行它时,我看到有时r[0]包含“a”。原因可能是什么?

'a'是,你并没有阻止它

为什么不先选择一个从98‘b’到104‘h’的值,而不是允许选择‘a’,然后拒绝它

我还建议使用Random.nextInt代替Math.Random,使用字符文字代替幻数,但是…

a= 97 //asCII

但在计算后,如果96键上有if条件,则不会验证最后一个键值。请参见

如果Math.random返回的值小于0.1249,则将打印该值。然后整数值变为97,从而打印“a”。a的ASCII值为97。您正在检查它是否不仅仅是96。

我认为它是这样的:int Math.random*高-低+低;意思是:>=x,我迟到了传说就在这里-