Попытка вернуть вывод прохождения InOrder в Java JLabel.Я могу вернуть содержимое ArrayList, но мне нужно, чтобы вывод был строкой без [,,,].Я уверен, что это простое решение, но я застрял некоторое время, пробуя разные вещи, в основном преследуя свой хвост.Приветствуется любая предоставленная помощь.
Часть GUI: Хранит ввод из текстового поля как String originalList.Пытается установить текст JLabel "resultBox" с выводом из getResult ().
if (e.getSource() == sortBtn) {
System.out.println("Test");
String originalList = readN();
resultBox.setText(getResult(originalList));
System.out.println("Original List: " + originalList);
}
getResult () токенизирует originalList и вставляет в дерево BinarySearchTree и возвращает обходной путь inorder tree.inOrder () '
public static String getResult(String tokenString) {
StringTokenizer tokens = new StringTokenizer(tokenString, "()*/+- ", false);
while (tokens.hasMoreTokens()) {
String tkn = tokens.nextToken();
if(tkn.equals(" ")) {
//ignore spaces
}
else {
int key = Integer.parseInt(tkn);
tree.insert(key);
}
}
return tree.inorder();
}
inorder () вызывает inorderRec () и возвращает результат.
// This method mainly calls inorderRec()
String inorder() {
String result = inorderRec(root);
return result;
}
// A utility function to do inorder traversal of BST
String inorderRec(Node root) {
if (root != null) {
inorderRec(root.left);
keyList.add(root.key);
inorderRec(root.right);
}
return String.valueOf(keyList);
//return result;
}
При использовании ввода 50 30 20 40 70 60 80 результат, видимый для JLabel, должен быть 20 30 4050 60 70 80, но фактический выход составляет [20, 30, 40, 50, 60, 70, 80]