Перейти к содержимому

Как массив string перевести в int java

  • автор:

Как массив string перевести в int java

Для перевода массива с элементами класса String в массив с элементами типа int следует пройтись в цикле по элементам исходного массива, привести их к типу int с помощью метода parseInt() и сохранить в новый массив. Необходимо помнить, если массив содержит то, что нельзя привести к целому числу, используя метод parseInt() , то будет выброшено исключение NumberFormatException . Например, вещественное число 3.0 или обычная строка Hello .

// Пример исключения Exception in thread "main" java.lang.NumberFormatException: For input string: "3.0" 
// Массив строк String[] strings = "1", "2", "3">; // Создаем массив целых чисел с размером, // как у массива строк int[] numbers = new int[strings.length]; // Проходимся в цикле по исходному массиву // Сохраняем приведенные элементы в новый массив for (int i = 0; i  strings.length; i++)  numbers[i] = Integer.parseInt(strings[i]); > System.out.println(Arrays.toString(numbers)); // => [1, 2, 3] 

Изучаем преобразование строки в число Java

Часто задаваемый вопрос по типам String/int в Java: Как преобразовать тип String в тип Int ?

Решение : используя метод parseInt класса Java Integer . Метод parseInt переводит тип String в Int , и вызывает исключение NumberFormatException , если строка не может быть приведена к целочисленному значению.

Посмотрим на два коротких примера.

Обновлено: 2022-10-23 15:49:10 Сергей Бензенко автор материала

Простой пример преобразования “ string to integer” в Java

Игнорируя исключение, которое может возникнуть, всё, что нужно сделать для перевода String в int , умещается в одну строку кода:

int i = Integer.parseInt(myString);

Если строка, представленная переменной myString , является корректным целым числом, например, “1”, “200”, и т.п., она будет приведена к типу int . Если преобразование окончится неудачей, будет вызвано исключение NumberFormatException. Поэтому ваш код должен быть немного длиннее, чтобы учитывать это, как показано в следующем примере.

Изучаем преобразование строки в число Java — полный пример перевода String в int

Ниже приведен полный код примера программы. Она демонстрирует процесс перевода в Java строки в целое число и обработку возможного исключения NumberFormatException :

public class JavaStringToIntExample< public static void main (String[] args) < // String s = "fred"; // Используйте эту строку для теста исключения String s = "100"; try < // перевод String в int выполняется здесь int i = Integer.parseInt(s.trim()); // выводим значение после преобразования System.out.println("int i = " + i); > catch (NumberFormatException nfe) < System.out.println("NumberFormatException: " + nfe.getMessage()); >>>

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

В приведенном выше примере метод Integer.parseInt(s.trim()) используется для перевода строки s в целое число i в следующей строке кода:

int i = Integer.parseInt(s.trim());

Если попытка преобразования оканчивается неудачей ( например, если вы пытаетесь привести строку fred к целому типу ), то метод parseInt класса Integer вызовет исключение NumberFormatException , которое необходимо обработать в блоке try/catch .

В этом примере на самом деле не нужно использовать метод trim() класса String . Но в реальных программах он понадобится, поэтому я применил его здесь.

Преобразование строки в число Java- дополнительные замечания

Раз уж мы обсуждаем эту тему, вот несколько замечаний о классах String и Integer :

  • Метод Integer.toString(int i) используется для преобразования из типа int в класс Java String .
  • Для преобразования объекта String в объект Integer используйте метод valueOf() класса Integer вместо parseInt() .
  • Если нужно приводить строки к другим примитивным типам Java , например, long , используйте методы Long.parseLong() , и т.п.

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

Надеюсь, что этот пример перевода String в int в Java был полезным. Если у вас есть вопросы или замечания, оставляйте их в комментариях.

Сергей Бензенко автор-переводчик статьи « How to convert a Java String to an Int »

Преобразование массива в строку

В этом коротком руководстве мы рассмотрим преобразование массива строк или целых чисел в строку и обратно.

Мы можем добиться этого с помощью vanilla Java и служебных классов Java из часто используемых библиотек.

2. Преобразовать массив в строку​

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

Реализация метода toString() по умолчанию для массива возвращает что-то вроде Ljava.lang.String;@74a10858 , что информирует нас только о типе объекта и хэш-коде.

Однако служебный класс java.util.Arrays поддерживает работу с массивами и строками, включая метод toString() для массивов.

Arrays.toString() возвращает строку с содержимым входного массива. Новая созданная строка представляет собой список элементов массива, разделенных запятыми, заключенных в квадратные скобки («[]»):

 String[] strArray =  "one", "two", "three" >;   String joinedString = Arrays.toString(strArray);   assertEquals("[one, two, three]", joinedString); 
 int[] intArray =  1,2,3,4,5 >;  joinedString = Arrays.toString(intArray);   assertEquals("[1, 2, 3, 4, 5]", joinedString); 

И хотя это здорово, что метод Arrays.toString(int[]) так хорошо решает эту задачу, давайте сравним его с другими методами, которые мы можем реализовать самостоятельно.

2.1. StringBuilder.append() ​

Для начала давайте посмотрим, как сделать это преобразование с помощью StringBuilder.append() :

 String[] strArray =  "Convert", "Array", "With", "Java" >;   StringBuilder stringBuilder = new StringBuilder();   for (int i = 0; i  strArray.length; i++)    stringBuilder.append(strArray[i]);   >   String joinedString = stringBuilder.toString();   assertEquals("ConvertArrayWithJava", joinedString); 

Кроме того, для преобразования массива целых чисел мы можем использовать тот же подход, но вместо этого вызывать Integer.valueOf(intArray[i]) при добавлении к нашему StringBuilder .

2.2. API потоков Java​

Java 8 и выше предлагает метод String.join() , который создает новую строку, объединяя элементы и разделяя их указанным разделителем, в нашем случае это просто пустая строка:

 String joinedString = String.join("", new String[] "Convert", "With", "Java", "Streams" >);   assertEquals("ConvertWithJavaStreams", joinedString); 

Кроме того, мы можем использовать метод Collectors.joining() из Java Streams API, который объединяет строки из Stream в том же порядке, что и его исходный массив:

 String joinedString = Arrays   .stream(new String[] "Convert", "With", "Java", "Streams" >)   .collect(Collectors.joining());   assertEquals("ConvertWithJavaStreams", joinedString); 

2.3. StringUtils.join() ​

И Apache Commons Lang никогда не должен оставаться в стороне от таких задач.

Класс StringUtils имеет несколько методов StringUtils.join() , которые можно использовать для преобразования массива строк в одну строку:

 String joinedString = StringUtils.join(new String[] "Convert", "With", "Apache", "Commons" >);   assertEquals("ConvertWithApacheCommons", joinedString); 

2.4. Столяр.присоединиться() ​

И чтобы не отставать, Guava приспосабливает то же самое к своему классу Joiner . Класс Joiner предлагает гибкий API и предоставляет несколько вспомогательных методов для объединения данных.

Например, мы можем добавить разделитель или пропустить нулевые значения:

 String joinedString = Joiner.on("")   .skipNulls()   .join(new String[] "Convert", "With", "Guava", null >);   assertEquals("ConvertWithGuava", joinedString); 

3. Преобразование строки в массив строк​

Точно так же нам иногда нужно разбить строку на массив, содержащий некоторое подмножество входной строки, разделенное указанным разделителем, давайте посмотрим, как мы можем это сделать.

3.1. Строка.split() ​

Во-первых, давайте начнем с разделения пробела с помощью метода String.split() без разделителя:

 String[] strArray = "loremipsum".split(""); 

Перевод String в массив чисел int

Есть ли функция, переводящая строку с численными значениями без запятой, разделенными пробелами, в массив int ?

Отслеживать
34.5k 15 15 золотых знаков 65 65 серебряных знаков 94 94 бронзовых знака
задан 7 авг 2015 в 2:28
Екатерина Фомина Екатерина Фомина
63 1 1 золотой знак 1 1 серебряный знак 5 5 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Примерно как то так можно — рассплитить в массив строк по разделителю и преобразовать из строк в целочисленное:

public class Main < public static void main(String[] args)< String str = "11 34 3 45 23 5 67"; String strArr[] = str.split(" "); int numArr[] = new int[strArr.length]; for (int i = 0; i < strArr.length; i++) < numArr[i] = Integer.parseInt(strArr[i]); // System.out.println(numArr[i]); >> > 

В Java 8 можно сделать в одну строку:

String str = "11 34 3 45 23 5 67"; int[] numArr = Arrays.stream(str.split(" ")).mapToInt(Integer::parseInt).toArray(); 

Отслеживать
ответ дан 7 авг 2015 в 3:54
36.8k 6 6 золотых знаков 48 48 серебряных знаков 125 125 бронзовых знаков

  • java
  • массивы
    Важное на Мете
Связанные
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.8.3130

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *