Рубрики
Без рубрики

Как преобразовать строку в целое число в Java

Мы можем использовать класс Integer для преобразования строки в целое число в Java. Для int используйте метод parseInt (), в противном случае используйте метод valueOf() для создания целого числа из строки.

Автор оригинала: Pankaj Kumar.

Строки и целые числа-это два разных типа данных в Java. Строки в Java хранят несколько символов вместе. Целочисленные хранилища…. ну, целые числа.

Преобразование строки в целое число в Java

Иногда строки могут содержать числа в виде символов. Это часто бывает, когда данные извлекаются в таблицах из API. Преобразование строки в нее легко вычисляется.

Что произойдет, если вы выполните арифметические операции над числами в виде строк? Давайте попробуем запустить приведенный ниже код.

package com.journaldev.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. Давайте посмотрим код, который это объясняет.

package com.journaldev.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.journaldev.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

Если вы программист, то вы, вероятно, не будете удовлетворены до тех пор, пока не разработаете свою собственную функцию с нуля. Мы сделаем именно это! Мы будем использовать цикл for для преобразования строки в целое число.

Для этого вам нужно немного знать о кодах ASCII. Все символы имеют код для их идентификации, этот код является кодом ASCII.

Если вы вычтете символ “0” из любой цифры символа, то получите абсолютное значение этого символа в виде целого числа.

Мы будем использовать этот факт и перебирать строку от конца символ за символом. Во время итерации мы обязательно добавим значение int каждого символа в общую переменную. Положение символа в строке важно отметить, так как при движении влево значение каждой цифры увеличивается в 10 раз. Поэтому нам понадобится переменная для учета коэффициента умножения каждой позиции.

package com.journaldev.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.journaldev.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;
    }
}

Как бы ни было весело писать нашу собственную функцию, пожалуйста, не используйте ее на своих производственных серверах. Это хорошо только для практики, для реального программирования вы должны придерживаться методов целочисленного класса.

Вывод

Преобразование строки в целое число-тривиальная задача. Это часто бывает полезно в случае, если данные импортируются из внешнего источника и содержат числа в виде строк.