Страницы

Поиск по вопросам

суббота, 13 октября 2018 г.

Возможно ли в тернарном операторе произвести зависимое от переменной умножение символов

Возможно ли как то упростить код метода:
public String say() { if(i<=0) return name +" спит."; else { StringBuilder sb = new StringBuilder(); for (int j = 0; j < i; j++) { sb.append("я"); } return name + " говорит м"+sb+"у!"; } }
До типа такого:
public String say() { return i<=0?name+" спит.":name + " говорит м"+'я'*i+"у!"; }
Я понимаю, что 'я'*i не правильно. Это образный пример.


Ответ

Вот так, без лишних методов и повторов переменных.
public String sayOrSleep(int i, String name) { return name + ((i<=0) ? " спит." : " говорит м"+ String.format("%0" + i + "d", 0).replace("0","я")+"у!"); }
Зачем писать костыль, когда уже все написано до Вас для подобных случаев :)

Комментариев нет:

Отправить комментарий