CharSequence to Integer with multiple + ve和-ve signs

时间:2013-10-21 07:00:44

标签: java android charsequence

我已经知道要将charsequence转换为整数,我们可以使用这个语句

String cs="123";    
int number = Integer.parseInt(cs.toString());

如果

cs = "++-+--25";

此语句是否仍然运行并根据给定的字符串给出答案-25

3 个答案:

答案 0 :(得分:2)

由于NumberFormatException不是有效整数,因此您最终得到++-+--25

请参阅docs of parseInt()

  

将字符串参数解析为带符号的十进制整数。 字符串中的字符必须全部为十进制数字,但第一个字符可以是ASCII减号' - '('\ u002D')表示负值或ASCII加号'+'('\ u002B')表示正值。返回结果整数值,就像参数和基数10作为parseInt(java.lang.String,int)方法的参数一样。

所以你被允许做

CharSequence cs = "-25"; //gives you -25

CharSequence cs = "+25";   //gives you 25

否则,采取必要的步骤来面对Exception:)

所以知道char序列是一个有效的字符串,只需编写一个简单的方法来返回true或false然后再继续

public static boolean  {
    try { 
        Integer.parseInt(s); 
    } catch(NumberFormatException e) { 
        return false;  // no boss you entered a wrong format
    }

    return true; //valid integer
}

然后你的代码看起来像

if(isInteger(cs.toString())){
int number = Integer.parseInt(cs.toString());
// proceed remaining
}else{
// No, Operation cannot be completed.Give proper input.
}

答案 1 :(得分:1)

回答你的问题是代码会运行并抛出异常,因为“++ - + - 25”不是有效的int,

   java.lang.NumberFormatException: For input string: "++-+--25"

答案 2 :(得分:0)

你会得到

java.lang.NumberFormatException: For input string: "++-+--25"

经过测试的示例:

CharSequence cs = "++-+--25";
System.out.println("" + Integer.parseInt(cs.toString()));