如何在Java中将字符串转换为整数

时间:2020-02-23 14:34:01  来源:igfitidea点击:

字符串和整数是Java中两种不同的数据类型。
Java中的字符串将多个字符存储在一起。

在Java中将字符串转换为整数

有时,字符串可以包含数字作为字符。
从API在表中检索数据时,通常是这种情况。
将Sring转换为int易于计算。

如果对字符串形式的数字执行算术运算会怎样?让我们尝试运行下面的代码。

package com.theitroad.java;
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
  public static void main(String[] args) {
    String a = "100";
    String b = "50";
    String c = a+b;
    System.out.println(c); 
  }
}

字符串中的加法是串联。
让我们看一些将字符串转换为整数的方法。

1.使用Integer.Valueof()

Integer.valueOf()将String转换为Integer对象。
让我们看一个解释它的代码。

package com.theitroad.java;
import java.util.ArrayList;
import java.util.Arrays;
public class Main {

  public static void main(String[] args) {
	//write your code here
    String a = "100";
    String b= "50";
    int A = Integer.valueOf(a);
    int B = Integer.valueOf(b);

    int c = A+B;
    System.out.println(c);
  }
}

整数值

2.使用Integer.parseInt()

Integer.parseInt()返回原始int类型作为输出。

package com.theitroad.java;
import java.util.ArrayList;
import java.util.Arrays;
public class Main {

  public static void main(String[] args) {
	//write your code here
    String a = "100";
    String b= "50";
    int A = Integer.parseInt(a);
    int B = Integer.parseInt(b);

    int c = A+B;
    System.out.println(c);

  }

}

3.使用好旧的for循环

如果您是一名程序员,那么您可能对util并不满意,除非您从头开始设计自己的函数。
我们将做到这一点!我们将使用for循环将字符串转换为整数。

为此,您需要对ASCII代码有所了解。
所有字符都有用于识别它们的代码,该代码是ASCII代码。

如果您从任何字符数字中减去字符" 0",那么您将获得该字符的绝对值(整数)。

我们将使用此事实,并从一个字符到另一个字符遍历字符串。
在迭代时,我们将确保将每个字符的int值添加到一个公共变量中。
字符串中字符的位置非常重要,因为左移每个数字的值会增加10倍。
因此,我们将需要一个变量来考虑每个位置的乘数。

package com.theitroad.java;
import java.util.ArrayList;
import java.util.Arrays;
public class Main {

  public static void main(String[] args) {
	//write your code here
    String a = "100";
    String b= "50";
    int A=string_to_int(a);
    int B=string_to_int(b);
    int c= A+B;
    System.out.println(c);

  }
  public static int string_to_int (String s){
      int num=0;
      int pos =1;
      for(int i=s.length()-1;i>=0;i--){
          num+= (s.charAt(i)-'0')*pos;
          pos*=10;

      }
      return num;

  }

}

但是,这段代码不会处理负整数。
要将程序修改为包括负整数,请使用标志来检查字符串的第一个位置。
之后,排除包含"-"的头寸。
以下代码演示了这一点:

package com.theitroad.java;
import java.util.ArrayList;
import java.util.Arrays;
public class Main {

  public static void main(String[] args) {
	//write your code here
    String a = "100";
    String b= "-50";
    int A=string_to_int(a);
    int B=string_to_int(b);
    int c= A+B;
    System.out.println(c);

  }
  public static int string_to_int (String s){
      int num=0;
      int pos =1;
      boolean flag = false;
      if(s.charAt(0)=='-'){
          s=s.substring(1);
          flag=true;
      }

      for(int i=s.length()-1;i>=0;i--){
          num+= (s.charAt(i)-'0')*pos;
          pos*=10;

      }
      if(flag){
          num=-1*num;
      }
      return num;
  }
}