在java项目中如何实现将字符串转换为整数

  介绍

这篇文章给大家介绍在java项目中如何实现将字符串转换为整数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

<强> java中字符串转整数

,,,,,,该题虽然和我们正常使用的字符串转整数的API中函数不一致,但是通过增加了很多额外的边界或者异常处理,可以锻炼算法思维的敏锐性和处理边界异常等问题的能力。

霸趈ava项目中如何实现将字符串转换为整数”

思路:字符串题一般考查的都是边界条件,特殊情况的处理,所以遇到此题一定要问清楚各种条件下的输入输出应该是什么样的。

这里已知的特殊情况有:

    <李>能够排除首部的空格,从第一个非空字符开始计算李 <>李允许数字以正负号(+ -)开头李 <>李遇到非法字符便停止转换,返回当前已经转换的值,如果开头就是非法字符则返回0 <李>在转换结果溢出时返回特定值,这里是最大/最小整数
      李,

先来几组测试用例:

“010“;   “;+ 004500,   “;-001 + 2 a42"   “;123 + 0”;   “-2147483648”;   “2147483648”;   “;- 321“;   “;-11919730356 x"   “9223372036854775809“

<强>以上的测试用例对应的正确输出如下:

10   4500   1   0   -2147483648   2147483647   0   -2147483648   2147483647

Java实现代码如下:

公共静态int myAtoi (String str) {
  如果(str==null | | str.length ()==0)
  返回0;
  char[]数组=str.toCharArray ();
  长期结果=0;//要返回的结果
  int数=0;//记录' + & # 39;或者”& # 39;出现的次数
  int num=0;//判断空格出现的位置
  int标志=1;//正数还是负数
  for (int i=0;我& lt;array.length;我+ +){
  字符c=array[我];
  如果(c>=& # 39; 0 & # 39;,, c<=& # 39; 9 & # 39;) {
  结果=结果* 10 + c & # 39; 0 & # 39;;//判断是否溢出
  如果标志==1,和result> Integer.MAX_VALUE) {
  返回Integer.MAX_VALUE;
  }else if(标志==1,,-result 

在上边的代码中,为循环遍历数组中,判断某个char是否是数字,可以使用<强> Character.isDigit (c) 强方法,计算结果时,可以使用<强> Character.getNumericValue (c) 强方法来得到某个字符类型的数值,总之就是可以很方便的使用字符里边的静态方法。

重写的为循环如下:

 (int i=0;我& lt;array.length;我+ +){
  字符c=array[我];
  如果(Character.isDigit (c)) {
  结果=结果* 10 + Character.getNumericValue (c);
  如果标志==1,和result> Integer.MAX_VALUE) {
  返回Integer.MAX_VALUE;
  }else if(标志==1,,-result 

关于在java项目中如何实现将字符串转换为整数就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

在java项目中如何实现将字符串转换为整数