gpt4 book ai didi

java - 如何使用 switch 语句实现字符串堆栈?

转载 作者:行者123 更新时间:2023-12-01 09:22:13 25 4
gpt4 key购买 nike

我想在 switch 语句中实现我的 StringStack,我怎样才能在 java 中实现这个工作。它说我无法使用 char 值进行 push() 和参数。我的验证方法最好的解决方法是什么?

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;
}

}

最佳答案

您可以使用 characterString = Character.toString(currentCharacter); 将当前字符存储在字符串中,只需将其插入堆栈即可。

StringStack.push(currentCharacter);

change to

StringStack.push(currentString);

关于java - 如何使用 switch 语句实现字符串堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40099705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com