У меня есть этот код, который должен делать то, что говорит название, изменить порядок символов без изменения порядка слов:реверс символов каждого отдельного слова в предложении, не обращая слово заказа
package stackTests;
import java.util.Scanner;
import java.util.Stack;
public class StackTest
{
Stack<Character> stack;
public StackTest()
{
stack = new Stack<Character>();
}
public String reverseString(String str)
{
int start = 0;
int start2 = 0;
int size;
char space = ' ';
char[] cArr;
Scanner scan = new Scanner(str);
cArr = str.toCharArray();
for (; start < cArr.length; start++)
{
if(cArr[start] == space || start == cArr.length - 1)
{
for (; start2 < stack.size(); start++)
{
System.out.print(stack.pop());
}
}
else
{
stack.push(cArr[start]);
}
start2 = 0;
}
return str;
}
}
Он отлично работает, если я ввожу одно слово, например «Hello» - он выдает «olleH» - но как только он усложняется, чем одно слово, он начинает выводить некоторые странные вещи ». Привет, меня зовут" выводит "ollehem". Я действительно новичок в Stack
и это мой первый раз, когда я их использую. Я не уверен, есть ли логическая ошибка или неправильное использование Stack
.
Это не читаемым. Отформатируйте свой код читаемым способом. – m0skit0
Вам действительно нужно использовать стек? Является ли эта часть домашней работы? –
Вы знаете, как использовать отладчик? – tnw