Roman82 / Ввести с клавиатуры строку и число N. Вывести на экран строку N раз используя цикл while.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
| package com.javarush.test.level04.lesson10.task03; |
| import java.io.*; |
| import java.io.BufferedReader; |
| import java.io.InputStreamReader; |
| /* Хорошего не бывает много |
| Ввести с клавиатуры строку и число N. |
| Вывести на экран строку N раз используя цикл while. |
| Пример ввода: |
| абв |
| 2 |
| Пример вывода: |
| абв |
| абв |
| */ |
| public class Solution |
| public static void main(String[] args) throws Exception |
| //напишите тут ваш код |
| BufferedReader read = new BufferedReader(new InputStreamReader(System.in)); String s = read.readLine(); |
| String n1 = read.readLine(); |
| int n = Integer.parseInt(n1); |
| int i = 0; |
| while (i < n) |
| System.out.println(s); |
| i++; |
| > |
| > |
| > |
Повторить строку несколько раз
где переменная i это количество повторений str, то есть если i == 3, а str == «N», то метод вернет следующее «NNN». Не пойму как это осуществить, не поможет мне кто?
Отслеживать
122k 24 24 золотых знака 124 124 серебряных знака 299 299 бронзовых знаков
задан 20 дек 2019 в 15:03
167 2 2 серебряных знака 12 12 бронзовых знаков
Вам нужна книжка для новичков
20 дек 2019 в 15:06
ассоциация: stackoverflow.com/q/1235179/4928642
20 дек 2019 в 15:25
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Начиная с Java 11 у строк есть встроенный метод repeat :
var s = "Qwe".repeat(3); // "QweQweQwe"
Отслеживать
ответ дан 20 дек 2019 в 15:26
122k 24 24 золотых знака 124 124 серебряных знака 299 299 бронзовых знаков
Огромнейшее спасибо)
20 дек 2019 в 17:27
public String methodName(int i, String str) < String result = ""; for( int u = 0; u < i; u++ ) < result = result + str; >return result; >
Отслеживать
ответ дан 20 дек 2019 в 15:13
69.8k 9 9 золотых знаков 66 66 серебряных знаков 122 122 бронзовых знака
String result = «»;
– user176262
20 дек 2019 в 15:16
Неэффективно же.
20 дек 2019 в 15:24
@Igor да, дкйствительно) Исправил)
20 дек 2019 в 15:26
@Qwertiy, ТС не просил эффективно)
20 дек 2019 в 15:26
@ЮрийСПб, а я уже ассоциацию нагуглил)
20 дек 2019 в 15:27
-
Важное на Мете
Связанные
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как повторить строку несколько раз java
В Java 11 добавили несколько полезных методов в классе String. В этой небольшой статье мы разберем их и попробуем с ними работать.
2. repeat()
Как следует из названия, метод repeat() повторяет n раз (где n передается в качестве параметра) содержимое строки, а затем возвращает сконкатенированный результат:
package ru.topjava.string; public class StringRepeat < public static void main(String[] args) < String strRepeat = "Knock ".repeat(2); System.out.println(strRepeat); // "Knock Knock " System.out.println(strRepeat.equals("Knock Knock ")); // true >>
Если в качестве аргумента передать отрицательное число, например -1, то будет выброшено исключение java.lang.IllegalArgumentException: count is negative: -1
Помимо этого, repeat() возвращает пустую строку, если значение исходной строки, которую нужно повторить, так же является пустой строкой или число повторений равно нулю.
3. strip()
Метод strip() возвращает строку со всеми удаленными начальными и конечными пробелами:
package ru.topjava.string; public class StringStrip < public static void main(String[] args) < String strStrip = "\u2006 java \n \t".strip(); System.out.println(strStrip); // "java" System.out.println(strStrip.equals("java")); // true >>
В Java 11 также были добавлены методы stripLeading() и stripTrailing(), которые обрабатывают начальные и конечные пробелы соответственно.
3.1. Различия между strip() и trim()
strip() определяет, является ли символ пробелом или нет, основываясь на Character.isWhitespace() . Другими словами, он знает о разных пробельных символах Unicode. Это отличает его от trim() , который определяет пробел, как любой символ, который меньше или равен пробелу из Unicode (U+0020).
Давайте применим trim() к предыдущему примеру. Результат будет другим:
package ru.topjava.string; public class StringTrim < public static void main(String[] args) < String strTrim = "\u2006 java \n \t".trim(); System.out.println(strTrim); // " java" System.out.println(strTrim.equals("java")); // false >>
Обратите внимание, как trim() обрезал начальные пробелы, но не смог убрать конечные. Это связано с тем, что trim() не знает о пробельных символах Unicode, которые имеют код больше U+0020.
4. isBlank()
Метод экземпляра isBlank() возвращает true, если строка пуста или содержит только пробелы, иначе — false:
package ru.topjava.string; public class StringIsBlank < public static void main(String[] args) < String strIsBlank = "\u2006 \n \t"; String strEmpty = ""; System.out.println(strIsBlank.isBlank()); // true System.out.println(strEmpty.isBlank()); // true >>
String.prototype.repeat()
Метод repeat() конструирует и возвращает новую строку, содержащую указанное количество соединённых вместе копий строки, на которой он был вызван.
Синтаксис
str.repeat(count)
Параметры
Целое число от 0 до +∞: [0, +∞), определяющее число повторений строки во вновь создаваемой и возвращаемой строке.
Возвращаемое значение
Новая строка, содержащая указанное количество копий строки, для которой был вызван метод.
Исключения
- RangeError : число повторений не должно быть отрицательным.
- RangeError : число повторений должно быть меньше бесконечности и не должно превышать максимально допустимую длину строки.
Примеры
"абв".repeat(-1); // RangeError "абв".repeat(0); // '' "абв".repeat(1); // 'абв' "абв".repeat(2); // 'абвабв' "абв".repeat(3.5); // 'абвабвабв' (количество будет преобразовано в целое число) "абв".repeat(1 / 0); // RangeError ( toString: () => "абв", repeat: String.prototype.repeat >).repeat(2); // 'абвабв' (метод repeat() является обобщённым методом)
Полифил
Этот метод был добавлен к спецификации ECMAScript 2015 и может быть доступен ещё не во всех реализациях JavaScript. Однако, вы можете легко эмулировать этот метод при помощи следующего кода:
if (!String.prototype.repeat) String.prototype.repeat = function (count) "use strict"; if (this == null) throw new TypeError("can't convert " + this + " to object"); > var str = "" + this; count = +count; if (count != count) count = 0; > if (count 0) throw new RangeError("repeat count must be non-negative"); > if (count == Infinity) throw new RangeError("repeat count must be less than infinity"); > count = Math.floor(count); if (str.length == 0 || count == 0) return ""; > // Обеспечение того, что count является 31-битным целым числом, позволяет нам значительно // соптимизировать главную часть функции. Впрочем, большинство современных (на август // 2014 года) браузеров не обрабатывают строки, длиннее 1 if (str.length * count >= 1 <28) throw new RangeError( "repeat count must not overflow maximum string size", ); > var rpt = ""; for (var i = 0; i count; i++) rpt += str; > return rpt; >; >
Спецификации
| Specification |
|---|
| ECMAScript Language Specification # sec-string.prototype.repeat |
Совместимость с браузерами
BCD tables only load in the browser
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
