Помогите пожалуйста с решением, нужно, чтобы если в выводе получалась строка длиной более 40 символов, после 40 символа стояло троеточие
import java.util.Scanner;
public class calculator {
public static void main(String[] args) throws Exception {
Scanner scn = new Scanner(System.in);
String cal = scn.nextLine();
char action;
String[] data;
if (cal.contains(" + ")) {
data = cal.split(" \\+ ");
action = '+';
} else if (cal.contains(" - ")) {
data = cal.split(" - ");
action = '-';
} else if (cal.contains(" * ")) {
data = cal.split(" \\* ");
action = '*';
} else if (cal.contains(" / ")) {
data = cal.split(" / ");
action = '/';
}else{
throw new Exception("Некорректный знак действия");
}
if (action == '*' || action == '/') {
if (data[1].contains("\"")) throw new Exception("Строку можно делить или умножать только на число");
}
for (int i = 0; i < data.length; i++) {
data[i] = data[i].replace("\"", "");
}
if (action == '+') {
printInQuotes(data[0] + data[1]);
} else if (action == '*') {
int multiplier = Integer.parseInt(data[1]);
String result = "";
for (int i = 0; i < multiplier; i++) {
result+=data[0];
}
printInQuotes(result);
} else if (action == '-') {
int index = data[0].indexOf(data[1]);
if(index == -1){
printInQuotes(data[0]);
}else{
String result = data[0].substring(0, index);
result+=data[0].substring(index+data[1].length());
printInQuotes(result);
}
}else{
int newLen = data[0].length()/Integer.parseInt(data[1]);
String result = data[0].substring(0,newLen);
printInQuotes(result);
}
}
static void printInQuotes(String text){
System.out.println("\""+text+"\"");
}
}
Ответы (1 шт):
Автор решения: Nowhere Man
→ Ссылка
Так как вывод реализуется в методе printInQuotes, то достаточно использовать стандартные методы класса String для решения этой задачи, тем более, что они уже применялись при обработке операции "вычитания" -
- Проверить длину входной строки при помощи
String::length - Если строка слишком длинная, то взять подстроку нужной длины:
String::substring(int start, int end)и прибавить многоточие (как строку из трёх точек"..."или как символ'…')
Приведённой информации должно быть достаточно для самостоятельной реализации в коде.