Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 0
Регистрация: 09.10.2017
Сообщений: 25
1

Как с массива чисел получить одно целое

27.01.2018, 12:54. Показов 1670. Ответов 19
Метки нет (Все метки)

Здравствуйте!Подскажите как с массива чисел получить одно целое? например int[] n = new int[]{1,2,3}; и чтобы потом n вышло 123
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.01.2018, 12:54
Ответы с готовыми решениями:

Выведите одно целое число — сумму чисел от 1 до N
1)Даны четыре числа. Требуется найти самое маленькое и самое большое из них. Входные данные...

Как разделить целое число Int64 на целое 1024 и получить double с 2 знаками после запятой
Int64 chislo=1234567890; double chislo2=chislo/1024;...

Даны целое n>0 и последовательность из n вещественных чисел, среди которых есть хотя бы одно отрицательное число
Даны целое n>0 и последовательность из n вещественных чисел, среди которых есть хотя бы одно...

как соединить в одно целое??
нужна программка которая отображает дерево каталогов и файлов вместе с их размерами,у меня есть как...

__________________

Записывайтесь на профессиональные курсы Java-разработчиков
Обучение в Java Mentor с оплатой после трудоустройства
19
605 / 481 / 173
Регистрация: 02.03.2010
Сообщений: 1,198
27.01.2018, 13:40 2
Лучший ответ Сообщение было отмечено WabiSabi как решение

Решение

Java
1
IntStream.of(new int[]{1,2,3}).mapToObj(number -> String.valueOf(number)).collect(Collectors.joining(""));
1
665 / 170 / 51
Регистрация: 22.12.2013
Сообщений: 1,279
Записей в блоге: 17
27.01.2018, 14:07 3
Можете использовать такой вариант, попроще:
Java
1
2
3
4
5
6
7
8
9
10
11
public class ArIntToString {
    public static void main(String[] args) {
        int[] n = new int[]{1,2,3};
        String str="";
    
        for (int i= 0; i<n.length; i++)
            str+=Integer.toString(n[i]); // берем по одному символу
 
        System.out.println("str = "+ str);
    }
}
1
3293 / 2355 / 425
Регистрация: 28.04.2012
Сообщений: 7,854
27.01.2018, 16:08 4
Цитата Сообщение от vvm28 Посмотреть сообщение
попроще
Чем он попроще?

_ViPeR_,
Java
1
number -> String.valueOf(number)
=>
Java
1
String::valueOf
Java
1
Collectors.joining("")
=>
Java
1
Collectors.joining()
1
Супер-модератор
Эксперт PythonЭксперт Java
7489 / 4083 / 1520
Регистрация: 21.10.2017
Сообщений: 11,556
27.01.2018, 16:20 5
Цитата Сообщение от korvin_ Посмотреть сообщение
Чем он попроще?
Для начинающего.
Стримы, безусловно, рулят, но если попросят объяснить, новичок врядли что-нибудь путное ответит...
0
3293 / 2355 / 425
Регистрация: 28.04.2012
Сообщений: 7,854
27.01.2018, 16:42 6
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Для начинающего.
Для начинающего как раз декларативное будет проще императивного, ИМХО. Не нужно объяснять, что такое состояние.
0
321 / 308 / 206
Регистрация: 14.09.2015
Сообщений: 827
27.01.2018, 23:13 7
Лучший ответ Сообщение было отмечено WabiSabi как решение

Решение

WabiSabi, ежели для Вашей задачи будет достаточно просто преобразовать массив в строку, то лучше сделать как советует _ViPeR_, с поправками от korvin_, ну а если в последствии планируется использовать полученное число, то можно поступить как-то так:
Java
1
2
3
4
5
6
7
8
9
    public static void main(String[] args) {
        int[] array = {1, 2, 3, 6};
        int result = digitToNamber(array);
        System.out.println(result + " / 2 = " + result / 2);
    }
 
    public static int digitToNamber(int[] array) {
        return Integer.parseInt(Arrays.stream(array).mapToObj(String::valueOf).collect(Collectors.joining()));
    }
1
1 / 1 / 0
Регистрация: 09.10.2017
Сообщений: 25
28.01.2018, 13:05  [ТС] 8
Нет, если было бы достаточно преобразовать в строку я б не обращался за помощью ) число планируется использовать
всем спасибо за ответы
0
1891 / 1508 / 373
Регистрация: 17.02.2014
Сообщений: 7,613
29.01.2018, 09:50 9
Цитата Сообщение от WabiSabi Посмотреть сообщение
массива чисел
а на стадии его получения, не пробовали "сделать" число?
0
5 / 5 / 1
Регистрация: 31.10.2017
Сообщений: 13
29.01.2018, 13:58 10
...сам учусь.
...ругайте!

Java
1
2
3
4
5
6
int[] n = new int[]{1,2,3};
        int z = 0;
        for(int key : n){
            z = z * 10 + key;
        }
        System.out.println(z);
з.ы.
Кстати, а если какое то из чисел в массиве будет отрицательным. Как с этим работать?
0
1891 / 1508 / 373
Регистрация: 17.02.2014
Сообщений: 7,613
29.01.2018, 14:17 11
Цитата Сообщение от CyberJo Посмотреть сообщение
ругайте
ты мазохист?
Java
1
2
3
4
5
6
7
8
public static void main(String[] args) {
        int [] number = {3,2,5,4};
        long res = 0;
        for (int i = 0; i < number.length; i++) {
            res += (long)Math.pow(10, number.length - i - 1)*number[i];
        }
        System.out.println(res);
    }
0
386 / 74 / 31
Регистрация: 13.04.2012
Сообщений: 127
29.01.2018, 14:52 12
vvm28, про StringBuilder не слышали?
0
5 / 5 / 1
Регистрация: 31.10.2017
Сообщений: 13
29.01.2018, 15:20 13
Aviz__, можешь пояснить... за мазохист? Где или точнее что конкретно, в моем коде хуже твоего кода... например тест показывайет что мой метод быстрее тобой написанного в 10 раз.

Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
long Start_time = System.nanoTime();
        int[] number = {1, 2, 3, 4, 5};
        long res = 0;
        for (int i = 0; i < number.length; i++) {
            res += (long) Math.pow(10, number.length - i - 1) * number[i];
        }
        System.out.print(res + " - ");
        long End_time = System.nanoTime();
        System.out.println("время Aviz__ метода: " + (End_time - Start_time)  + " n/s");
 
//---------------------------------------------------
        long Start_time2 = System.nanoTime();
        int[] n = new int[]{1, 2, 3, 4, 5};
        int z = 0;
        for (int key : n) {
            z = z * 10 + key;
        }
        System.out.print(z + " - ");
        long End_time2 = System.nanoTime();
        System.out.println("время CyberJo метода: " + (End_time2 - Start_time2) + " n/s");
12345 - время Aviz__ метода: 508672 n/s
12345 - время CybeJo метода: 25352 n/s


...или прикол сокрыт в чем то другом а я просто не в теме?)
0
1891 / 1508 / 373
Регистрация: 17.02.2014
Сообщений: 7,613
29.01.2018, 15:22 14
так уже)) и это к коду не относится))
0
2881 / 2293 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
29.01.2018, 15:24 15
Цитата Сообщение от Aviz__ Посмотреть сообщение
ты мазохист?
код по идее зафейлится на int [] number = {3,21,5,4};
1
1891 / 1508 / 373
Регистрация: 17.02.2014
Сообщений: 7,613
29.01.2018, 15:25 16
Цитата Сообщение от Pablito Посмотреть сообщение
,21
точно!
0
5 / 5 / 1
Регистрация: 31.10.2017
Сообщений: 13
29.01.2018, 15:26 17
Aviz__, ты прав я соврал... в 20 раз быстрее
Ну да ладно это полемика, я просто думал что я в чем то ошибся и твой метод делает что то не то... в отличии от моего.


Pablito, бИда... поломалось все
0
1891 / 1508 / 373
Регистрация: 17.02.2014
Сообщений: 7,613
29.01.2018, 15:30 18
CyberJo, как показали выше, оба мы пошли весьма узким путем((
0
5 / 5 / 1
Регистрация: 31.10.2017
Сообщений: 13
29.01.2018, 17:20 19
Aviz__, ошибаться для человека обыденное дело... не зазорно, главное уметь признавать ошибки
0
1891 / 1508 / 373
Регистрация: 17.02.2014
Сообщений: 7,613
29.01.2018, 18:01 20
Цитата Сообщение от CyberJo Посмотреть сообщение
ошибаться для человека
зазорно, именно в таких ошибках! Ведь мысль обобщить не только на однозначные числа - очень проста...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2018, 18:01

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Отображение 3 полей 1 таблицы как одно целое
Доброго времени суток! Есть 3 поля Name LastName FatherNameкоторые находятся в одной...

Байты считанны по одному. Как обьедянить в одно целое?
Хай народ.. У меня прикол в том что я в цикле читаю по одному байту, пока байт не будет...

Байты считаны по одному. Как объединить их в одно целое?
Хай народ.. У меня прикол в том что я в цикле читаю по одному байту, пока байт не будет...

Получить одно значение массива
Доброго дня, делаю маленький трекинг отправок для своих нужд, использую API Почты России. Циклом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.