如何在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;
  }
}

