Всем доброго, друзья!
Суть вопроса вот в чем: задачку то уже почти решил, но бьюсь вот с какой бедой: у меня программа выдает результат в виде:
3 + 6 =
9
то есть идет перенос на другую строку результата. Я делаю через stringBuilder. Но даже удаляя знак переноса на другую строку-все равно не выходит.
Ваши идеи, почему так?
P.S. случай умножения пока не делал-т.к. надо логику +- домучать, а потом ее же вставить в умножение.
Заранее благодарю!
package com.javarush.task.task19.task1914;
/*
Решаем пример
*/
import java.io.*;
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) throws IOException {
PrintStream consoleStream = System.out;
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
PrintStream stream = new PrintStream(outputStream);
System.setOut(stream);
testString.printSomething();
String result = outputStream.toString();
System.setOut(consoleStream);
int one=0;
int two = 0;
int three=0;
int four = 0;
boolean plus=false;
boolean multiplication = false;
StringBuilder stringBuilder = new StringBuilder();
char [] array = result.toCharArray();
for (char ch: array)
{
if (Character.isDigit(ch))
{
if (one==0)
{
one = Character.getNumericValue(ch);
}
else
{
two=Character.getNumericValue(ch);
}
}
else if (ch =='+')
{
plus = true;
}
else if (ch =='*')
{
multiplication =true;
}
}
if (plus)
{
three = one+two;
// System.out.println(result);
stringBuilder.append((result.replaceAll("\\n", "") )).append(three);
// stringBuilder.append(result).append(three);
String out = stringBuilder.toString();
System.out.print(out);
// System.out.print(three);
}
else
{
four = one-two;
System.out.print(result + four);
}
if (multiplication)
{
//тут будет код-просто надо сначала доделать +- -потом ту же логику сюда
}
}
public static class TestString {
public void printSomething() {
System.out.println("3 + 6 = ");
}
}
}