1

我了解到要将字符序列转换为整数,我们可以使用此语句

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

如果

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

该语句是否仍会运行并根据给出的字符串给出答案-25?

4

3 回答 3

2

你最终得到一个NumberFormatException 因为++-+--25 不是一个有效的整数。

请参阅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.
}
于 2013-10-21T07:03:55.890 回答
1

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

   java.lang.NumberFormatException: For input string: "++-+--25"
于 2013-10-21T07:05:21.793 回答
0

你会得到

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

测试示例:

CharSequence cs = "++-+--25";
System.out.println("" + Integer.parseInt(cs.toString()));
于 2013-10-21T07:06:09.700 回答