Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

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

Код:

сумма = 0
слагаемое = 0
по всем символам цикл
  если цифра
    слагаемое = слагаемое * 10 + цифра
  иначе
    сумма = слагаемое + сумма
    слагаемое = 0

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

Код:

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 в 01:58.
OlegGonchar вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


21:33.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru