Я хотел бы реализовать свой StringStack в инструкции switch, как я могу сделать эту работу в java. это sais i can not push() и аргумент с значением char. Каков наилучший способ для моего метода проверки?Как реализовать строковый стек с помощью оператора switch?
package xmlvalidator;
public class BasicXmlValidator implements XmlValidator {
@Override
public String[] validate(String xmlDocument) {
// TODO Auto-generated method stub
int charIndex = 0;
char currentCharacter;
String characterString;
while (charIndex < xmlDocument.length()) {
currentCharacter = xmlDocument.charAt(charIndex);
characterString = Character.toString(currentCharacter);
switch (currentCharacter) {
case '(': StringStack.push(currentCharacter);
break;
case '[': StringStack.push(currentCharacter);
break;
case '{': StringStack.push(currentCharacter);
break;
case ')': StringStack.push(currentCharacter);
break;
case ']': StringStack.push(currentCharacter);
break;
case '}': StringStack.push(currentCharacter);
break;
}
}
return null;
}
}
package xmlvalidator;
import static java.lang.System.*;
public class BasicStringStack implements StringStack {
public int count; // Number of Items in the array
public String[] stackItems; // The array that holds the stack items
public BasicStringStack(int initialSize) {
count = 0;
stackItems = new String[initialSize];
}
@Override
public void push(String item) {
// TODO Auto-generated method stub
if (count == stackItems.length) {
int newLength = (stackItems.length + 1);
String[] tempArray = new String[newLength];
arraycopy(stackItems, 0, tempArray, 0, stackItems.length);
stackItems = tempArray;
}
stackItems[count++] = item;
}
@Override
public String pop() {
if (count == 0) {
return null;
} else {
return stackItems[--count];
}
}
@Override
public String peek(int position) {
if ((position > count - 1) || (position < 0)) {
return null; // outside Bounds
} else {
return stackItems[count - position - 1];
}
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return count;
}
}
ваша функция 'общественного String [] Validate (String XMLDOCUMENT);' возвращает нуль, но она должна возвращать массив строк, и ваш 'INT CHARINDEX = 0;' не увеличивается, и у вас есть массив строк и ваш толкающий символ в нем –
Я еще не закончил код. Я просто хочу знать, как подтолкнуть значение моего персонажа. –
Вы используете StringStack для apache: [link] https://commons.apache.org/proper/commons-collections/javadocs/api-2.1.1/org/apache/commons/collections/StringStack.html [ссылка] –