Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2018, 12:53   #1
ДИджей
Новичок
Джуниор
 
Регистрация: 26.05.2018
Сообщений: 1
По умолчанию Задача на Java

Здравствуйте !
Не могли бы помочь с задачей.
По условию дана строка String, из этой строки нужно "достать" числа и сложить их.
Например: "HeL99LO, Wor1088LD !" ==> 99+1088
Простое решение сделать могу
( 9+9+1+0+8+8), а вот полностью, с разрядами - нет(
Что можете посоветоватьь ?
ДИджей вне форума Ответить с цитированием
Старый 26.05.2018, 13:55   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Код:
сумма = 0
слагаемое = 0
по всем символам цикл
  если цифра
    слагаемое = слагаемое * 10 + цифра
  иначе
    сумма = слагаемое + сумма
    слагаемое = 0
Black Fregat вне форума Ответить с цитированием
Старый 27.05.2018, 14:12   #3
OlegGonchar
Новичок
Джуниор
 
Регистрация: 27.05.2018
Сообщений: 1
Хорошо Можно так решить, через парсинт. Только надо еще дописать обработку если цифры в конце изначальной строки.

Код:
import java.util.ArrayList;
import java.util.List;

public class SimpleTask {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
			String str = "HeL99LO, Wor1088LD !";
			List<Integer> indexes =new ArrayList<Integer>();
			
			for (int i = 0 ; i < str.length(); i++) {
				if(Character.isDigit(str.charAt(i))) {
					indexes.add(i);
					for(int y =i+1; y< str.length(); y++) {
						if(!Character.isDigit(str.charAt(y))) {
							indexes.add(y);
							i=y+1;
							break;
						}
					}	
				}	
			}
			
			List<String> listr = new ArrayList<String>();
			for(int i=0; i< indexes.size(); i=i+2) {
				 
                        listr.add(str.substring(indexes.get(i),indexes.get(i+1)));
			}
			
			int  sum=0;
			for (String i:listr) {
				sum += Integer.parseInt(i);
			}
			System.out.println(sum);
	}
}
Пожалуйста, оформляйте Ваш код согласно правилам.

Последний раз редактировалось Вадим Мошев; 19.12.2018 в 00:58.
OlegGonchar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача, Java dungle Помощь студентам 1 05.12.2011 19:27
Задача на JAVA Veina Помощь студентам 5 17.03.2011 05:53
Задача по java Gamestop Помощь студентам 6 12.01.2011 01:36