您的位置:

Java字符串转整数详解

一、C语言字符串转换成整数

C语言中提供了两个函数可以将字符串转换成整数。

1、atoi函数:该函数将给定的字符串转换为对应的整数。

    
        #include 
   
        int atoi(const char *str);
    
   

2、strtol函数:该函数将给定的字符串转换为对应的长整数。

    
        #include 
   
        long int strtol(const char *str, char **endptr, int base);
    
   

其中base参数表示转换时使用的进制数。

二、JAVA字符串转数组

JAVA中字符串转数组的方法主要有三种,分别是使用toCharArray()方法、getBytes()方法、StringUtils.toCharArray()方法。

1、使用toCharArray()方法:

    
        String str = "Hello World";
        char[] charArray = str.toCharArray();
    

2、使用getBytes()方法:

    
        String str = "Hello World";
        byte[] byteArray = str.getBytes();
        char[] charArray = new char[byteArray.length];
        for (int i = 0; i < byteArray.length; i++) {
            charArray[i] = (char) byteArray[i];
        }
    

3、使用StringUtils.toCharArray()方法(使用StringUtils需先导入依赖):

    
        String str = "Hello World";
        char[] charArray = StringUtils.toCharArray(str);
    

三、字符串转换为整数

Java语言中字符串转整数常用的方法是使用Integer.parseInt(String s)或者使用Integer.valueOf(String s)。

1、使用Integer.parseInt(String s):

    
        String str = "121";
        int num = Integer.parseInt(str);
    

2、使用Integer.valueOf(String s):

    
        String str = "121";
        int num = Integer.valueOf(str);
    

四、JAVA字符串转数字的方法

1、使用String的构造函数:

    
        String str = "121";
        Integer num = new Integer(str);
    

2、使用包装类的parseXxx静态方法(如:parseInt):

    
        String str = "121";
        Integer num = Integer.parseInt(str);
    

3、使用valueOf方法(类似于方法2):

    
        String str = "121";
        Integer num = Integer.valueOf(str);
    

五、完整代码示例

    
        public class StringToInteger {
            public static void main(String[] args) {
                
                //C语言字符串转换成整数
                String str1 = "121";
                int num1 = atoi(str1);
                System.out.println(num1);

                String str2 = "121";
                long num2 = strtol(str2, null, 10);
                System.out.println(num2);

                //JAVA字符串转数组
                String str3 = "Hello World";
                char[] charArray = str3.toCharArray();
                System.out.println(Arrays.toString(charArray));

                String str4 = "Hello World";
                byte[] byteArray = str4.getBytes();
                char[] charArray2 = new char[byteArray.length];
                for (int i = 0; i < byteArray.length; i++) {
                    charArray2[i] = (char) byteArray[i];
                }
                System.out.println(Arrays.toString(charArray2));

                //字符串转换为整数
                String str5 = "121";
                int num5 = Integer.parseInt(str5);
                System.out.println(num5);

                String str6 = "121";
                int num6 = Integer.valueOf(str6);
                System.out.println(num6);

                //JAVA字符串转数字的方法
                String str7 = "121";
                Integer num7 = new Integer(str7);
                System.out.println(num7);

                String str8 = "121";
                Integer num8 = Integer.valueOf(str8);
                System.out.println(num8);

                String str9 = "121";
                Integer num9 = Integer.parseInt(str9);
                System.out.println(num9);
            }

            private static int atoi(String str) {
                int num = 0, i = 0, n = str.length();
                boolean negative = false;
                if (n > 0) {
                    char firstChar = str.charAt(0);
                    if (firstChar < '0') { // Handle negative numbers
                        negative = firstChar == '-';
                        i++;
                    }
                    while (i < n) {
                        num = num * 10 + (str.charAt(i++) - '0');
                    }
                }
                return negative ? -num : num;
            }
        }