![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Rauko |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 22.6.2009 Репутация: нет Всего: нет |
условие задачи - организовать ввод с клавиатуры строки(слово и 2 числа) и обрезать указанное слово по числам, например, вводим "he11ow0rld 2 9" и получаем на выходе "e11ow0rl"
при этом не применять каких то замудренных функций(это взято из начала учебника, из примеров до указанного задания - ввод-вывод строк, числа фибоначи, простые формулы) из 7ми задач только эта не решается если кому не жалко уделить минут 10 для помощи - подскажите как реализовать чтение и распознование "границ" так же, если это возможно, подскажите ввод с клавиатуры, компилирующийся на java 1.7+, а то с примеров под 1.5 через раз компилится код... Это сообщение отредактировал(а) Rauko - 13.10.2014, 22:08 |
|||
|
||||
| sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 1 Всего: 13 |
Ну вы покажите что не получается.
Для ввода - new Scanner(System.in) -> scan.nextString(), scan.nextInt(), scan.nextInt() а что значит распознование границ? если знаете что на вводу идет: слово, число, число, то пользуйтесь сканнером, он сам все распознает http://docs.oracle.com/javase/7/docs/api/j...il/Scanner.html |
|||
|
||||
| Rauko |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 22.6.2009 Репутация: нет Всего: нет |
при попытке считать или присвоить значения переменным конфликтуют типы - при считывании в строку заносит char, а при работе с индексами в int
что я делаю не так? распознавание границ означает, что одной строкой вводятся *слово* *номер первого символа* *номер последнего символа* я спрашивала у более опытных кодеров, как это делается, они сказали как один, что эту фигню надо написать с нуля вручную, что бы потом через несколько глав мне в учебнике показали альтернативу в 3 строки через какую то умную функцию... еще есть с другой задачкой маленькая проблемка - надо просто поменять местами знаки в словах введенной строки. тут снова проблема типов - если точнее, то читать и заносить считанное в массив компилятор отказывается, выводит ошибку, следовательно и показать определенное значение(определенный символ из строки через str[i] или длинну введенной строки через str.length отказывается - ошибка ввода или не может быть переменной). как это решить? да, я начинаю только java учить, прошу отнестись с пониманием - вокруг спросить не у кого, а через ваш сайт я когда то за неделю осилила паскаль... |
|||
|
||||
| Rauko |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 22.6.2009 Репутация: нет Всего: нет |
Итого, у меня получилась следующая ерунда с одной ошибкой(это пока та, которую выдал компилятор, о правильности выполнения программы и верности результатов работы вообще речи пока не идет. алгоритм работы скорее всего еще будет правиться):
Несоответствие типов: невозможно преобразовать Scanner в char[]
Я уже успела прочитать, что есть какая-то встроенная функция substring, которая весь вышеописанный бред делает самостоятельно и вроде даже по условию, но поставленная задача не включала в себя использование этой функции, а самодельную ее интерпритацию. Заставлю работать эту прогу - сделаю еще через substring для сравнения. Помогите заставить вышенаписанное запуститься дальше проверки 14ой строки - хочется увидеть результат работы и отладить алгоритм(для общего развития и лишней практики). Чисто в теории может заработать, хотя уверенности нет. Поясните пожалуйста, что не так и как впредь такого не допускать. И да, я таки краб... |
|||
|
||||
| Rauko |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 22.6.2009 Репутация: нет Всего: нет |
удалось откомпилировать и оргаизовать считывание данных... код, естественно, дальше этого самого считывания оказался более чем нерабочий, но дело еще в другом...
вот так теперь выглядит начало программы:
но дело в другом. в конце программы была такая строка:
которая выдает параметры введенной строки. str.length в данном случае выдает только длинну ПЕРВОГО СЛОВА, игнорируя все пробелы, которые могут быть перед этим словом. как сделать так, что бы str.length выдавало полную длинну введенной строки? другими словами, введя что то вроде: qwesdfcvb 2 8 я получаю в ответ от программы только "Your string contains 9 symbols, your word is ..." почему так происходит и как с этим бороться? Это сообщение отредактировал(а) Rauko - 15.10.2014, 16:06 |
||||
|
|||||
| sQu1rr |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 1 Всего: 13 |
Извиняюсь давно не появлялся, приведу код о котором я говорил, но насколько я понял вам нельзя использовать всякие приколы типо String? Это странно так как Scanner почему то можно
В любом случае, тут наглядно показано как читать переменные разных типов, именно то что я имел ввиду в своем посте
2 - это 3я буква, так что получите 11ow0rl Добавлено через 10 минут и 24 секунды Или скорее функции типо substr, тогда будет чтото типо того:
|
||||
|
|||||
| Rauko |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 22.6.2009 Репутация: нет Всего: нет |
в учебнике, который я использую, есть пример ввода текста с консоли до задач, но к сожалению, он представлен под старую яву и в новой(1.7 и 1.8) не компилится и не работает, Scanner искался через гугл как "вариант ввода данных с консоли в java"
как я поняла, последний код - это интерпритация substr, только мне не совсем понятна запись... можно немного расшифровать, как оно работает и приминима ли такая запись в других случаях? еще один вопрос - можно ли как то вычислить длину введенной строки? сканнер обрезает все лишнее просто и возможно в итоге вычислить только длинну значащих символов еще вопрос - как можно выполнить инициализацию string, что бы в переменной было пусто? компилятор предложил загнать туда значение null, но любая выводимая строка после этого в начале дописывает null... да, вопросы от меня будут идти глупые.. Это сообщение отредактировал(а) Rauko - 27.10.2014, 18:51 |
|||
|
||||
| sQu1rr |
|
||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 1 Всего: 13 |
Так оно и есть
Запись применима (только зачем колесо изобретать, если есть готовая функция), она расшифровывается как
Можно записать так
всмысле с пробелами? ну тогда нужно считывать строку целеком. можно даже и сканнером, если использовать
|
||||||||||
|
|||||||||||
| Rauko |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 22.6.2009 Репутация: нет Всего: нет |
немного опадзала с правкой поста, повторю еще раз...
непонятно значение вот этой строки, вернее роли в ней "+=" - как это правильно читать? за вычисление длинны строки в сканере спасибо, пригодится(в текущей задаче не спрашивалось, но в дальнейшем может пригодиться) |
||||
|
|||||
| sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 1 Всего: 13 |
||||
|
||||
| Rauko |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 22.6.2009 Репутация: нет Всего: нет |
другими словами, эта строка сразу инкрементирует результат с инкрементированием шага а+1 ?
и это... как все таки String инициировать как ПУСТУЮ переменную? Это сообщение отредактировал(а) Rauko - 27.10.2014, 21:19 |
|||
|
||||
| sQu1rr |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 1 Всего: 13 |
возвращает символ из str по индексу А, это символ "добавляется" к строке, а ПОТОМ инкрементирует А на 1 то есть str2 + СИМВОЛ - символ прибавиться, это не называется инкрементом строки. я привел целое число лишь для демонстрации того что A += B, это A = A + B Добавлено через 47 секунд всмысле?
|
||||
|
|||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |