在尝试查看Java中的每个ASCII值时,如何将整数与字符进行比较

时间:2013-10-21 04:10:29

标签: java string character base

所以,我正在编写一个用多个基数进行算术的程序(意思是二进制到haxycimal和所有中间的),因为我还是比较新的Java,我有点困难试图弄清楚如何进行我想要的比较。我想做的是取字符串中的最后一个字符,并将其与特定的整数进行比较。例如,假设我有一个数字为9.54126。那么,在程序的这一点上,这个数字实际上是一串字符,所以我最后将'6'视为一个字符。我想知道这六个是否足够高,可以整理。所以,基本上我想看看它的ASCII值是否高于当前基数的一半(如果答案是以15或16为基数显示,我向上舍入为8,依此类推)。在程序的早期,我发现应该根据当前选择的基数舍入的值,并将其保存在整数变量roundable中。现在,我需要知道如何比较整数的ASCII值作为一个字符,以及最后一个点中的字符。以下是示例代码:

 //roundable is an integer here but I want it to be the character representation
 //of the number so I can compare their ASCII values                                                        

if(convertedString.charAt(lastSpot)) >= roundable){
    //round here
} else {
    //don't round
}

有人可以告诉我如何做到这一点?谢谢!

2 个答案:

答案 0 :(得分:0)

假设您的convertedString只包含来自'0'-'9'的字符:您可以轻松完成,

lastSpot = convertedString.length() - 1;
roundable = base/2;
if((convertedString.charAt(lastSpot) - '0') >= roundable){
    //round here
} else {
    //don't round
}

'0'的十六进制(十进制)值为30(48)'9'39(57)

答案 1 :(得分:0)

试试这个:

int base;
String number;

boolean roundUp = number.charAt(number.length() - 1) - '0' > base / 2;