Доброй ночи всем. Кто может подсказать - что я делаю не так? Не могу сообразить..

Ошибка следующая: Метод getPartOfString должен возвращать подстроку между первой и второй табуляцией.

Между табуляциями

Метод getPartOfString должен возвращать подстроку между первой и второй табуляцией.

На некорректные данные бросить исключение TooShortStringException.

Класс TooShortStringException не менять.

Требования:

1. Класс TooShortStringException должен быть потомком класса Exception.

2. Метод getPartOfString должен принимать строку в качестве параметра.

3. В случае, если строка, переданная в метод getPartOfString содержит менее 2 табуляций должно возникнуть исключение TooShortStringException.

4. Метод getPartOfString должен возвращать подстроку между первой и второй табуляцией.

package com.javarush.task.task22.task2203;

/* 
Между табуляциями
*/
public class Solution {
    public static String getPartOfString(String string) throws TooShortStringException {

        if (string == null || string.isEmpty()) {
            throw new TooShortStringException();
        }

        String string1 = string.replace("\t", "#");

        char[] stringMassive = string1.toCharArray();

        int firstT = 0;
        int secondT = 0;

        int count = 0;

        for (int i = 0; i < stringMassive.length; i++) {
            String symbol = String.valueOf(stringMassive[i]);
            if (symbol.equals("#")) {
                count++;
                if (count == 1) {
                    firstT = i + 1;
                }
                if (count == 2) {
                    secondT = i - 1;
                }
            }
        }
        if (count < 2) {
            throw new TooShortStringException();
        }

        String result = string.substring(firstT, secondT);

        return result;
    }

    public static class TooShortStringException extends Exception {
        public TooShortStringException() {
            super();
        }
    }

    public static void main(String[] args) throws TooShortStringException {
        System.out.println(getPartOfString("\tJavaRush - лучший сервис \tобучения Java\t."));
    }
}

задан 28 Апр '17, 15:58

Soulriver's gravatar image

Soulriver
797
одобрено: 41%


Решил через split(). А счетчик по табуляции через таблицу ASCII.

ссылка

опубликован 29 Апр '17, 14:31

Soulriver's gravatar image

Soulriver
797
одобрено: 41%

Танцы с бубном проходят каждый раз с валидатором. Задача работает, ответ не принимается. Причем, по аналогичному способу решалась предыдущая задача, её приняло!

ссылка

опубликован 25 Янв, 04:58

Nazarini's gravatar image

Nazarini
173
одобрено: 0%

Ваш ответ
включить просмотр

Следить за вопросом

По Email:

После авторизации вы сможете подписаться на любые обновления здесь

Основы Markdown

  • *italic* or _italic_
  • **bold** or __bold__
  • ссылка:[текст](http://url.com/ "заголовок")
  • изображение?![alt текст](/path/img.jpg "заголовок")
  • нумерованный список: 1. Foo 2. Bar
  • Для того чтобы добавить разрыв строки просто добавьте два пробела.
  • основные HTML тэги, также поддерживаются

Тэги:

×3,809
×144
×3

Задан: 28 Апр '17, 15:58

Просмотров: 431 раз

Отредактирован: 25 Янв, 04:58