Проверил программу с числами до четырехзначных, проверил с нулем и нулями, абсолютно все операции по сложению выполняются верно, но валидатор ругается(
package com.javarush.task.task19.task1914;
/*
Решаем пример
*/
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Solution {
public static TestString testString = new TestString();
public static void main(String[] args) {
PrintStream console = System.out;
ByteArrayOutputStream streamOut = new ByteArrayOutputStream();
PrintStream stream = new PrintStream(streamOut);
System.setOut(stream);
testString.printSomething();
ArrayList<Integer> a = new ArrayList<>();
Pattern p = Pattern.compile("\\b[1-9][0-9]*\\b");
Pattern p1 = Pattern.compile("[+*-]");
Matcher m = p.matcher(streamOut.toString());
Matcher m2 = p1.matcher(streamOut.toString());
while(m.find()){
a.add(Integer.parseInt(m.group()));
}
String znak="";
while(m2.find()){
znak = m2.group();
}
int result = 0;
if(a.size()==0){
result=0;
}
else if(a.size()==1){
result = a.get(0);
}
else {
switch (znak) {
case "+":
result = a.get(0) + a.get(1);
break;
case "-":
result = a.get(0) - a.get(1);
break;
case "*":
result = a.get(0) * a.get(1);
break;
}
}
System.setOut(console);
String y = streamOut.toString().substring(0,streamOut.size()-2)+result;
System.out.print(y);
}
public static class TestString {
public void printSomething() {
System.out.println("3 + 6 = ");
}
}
}