Как массив 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.