switch文でStringStackを実装したいのですが、どのようにすればjavaで動作させることができますか?それは私がプッシュ()と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(文字列のXmlDocument);' nullを返しますが、それは文字列配列を返すことになって、あなたの 'int型charIndexの= 0;'インクリメントされないと、あなたは文字列配列とあなたを持っています文字を押してください –
私はまだコードを完成havnt。私は自分のキャラクターの価値を押し出す方法を知りたいだけです。 –
あなたはapacheのStringStackを使用していますか?[link] https://commons.apache.org/proper/commons-collections/javadocs/api-2.1.1/org/apache/commons/collections/StringStack.html [link] –