Java 将用户输入排序到堆栈中

Java 将用户输入排序到堆栈中,java,string,stack,Java,String,Stack,我刚刚开始使用Java,目前正在使用Netbeans。我正在尝试使用堆栈对用户提供的列表进行排序。我想根据字符串以k或n开头的内容,将不同的字符串放入不同的堆栈中。提供的列表是以k或n开头的随机长度字符串,用新行分隔 这是我当前的代码: public void sortAction() { //Generate a list from user input String s[] = listArea.getText().split("//r?//n?//s"); Arr

我刚刚开始使用Java,目前正在使用Netbeans。我正在尝试使用堆栈对用户提供的列表进行排序。我想根据字符串以k或n开头的内容,将不同的字符串放入不同的堆栈中。提供的列表是以k或n开头的随机长度字符串,用新行分隔

这是我当前的代码:

public void sortAction() {

    //Generate a list from user input
    String s[] = listArea.getText().split("//r?//n?//s");
    ArrayList<String> arrList = new ArrayList<>(Arrays.asList(s));

    //Convert the list into a stack
    Stack<String> mainStack = new Stack<>();
    mainStack.addAll(arrList);

    //Sort mainStack into kStack and nStack
    Stack<String> kStack = new Stack<>();
    Stack<String> nStack = new Stack<>();       
    String temp;

    while (!mainStack.isEmpty()) {
        temp = mainStack.pop();
        if  (temp.startsWith("k")) {
            kStack.push(temp);
        } else {
            nStack.push(temp);
        }

    //Check
    System.out.println(kStack);

    }
公共无效排序(){
//根据用户输入生成列表
字符串s[]=listArea.getText().split(//r?//n?//s);
ArrayList arrList=新的ArrayList(Arrays.asList));
//将列表转换为堆栈
堆栈主堆栈=新堆栈();
mainStack.addAll(arrList);
//将mainStack分为kStack和nStack
堆栈kStack=新堆栈();
Stack nStack=新堆栈();
字符串温度;
而(!mainStack.isEmpty()){
temp=mainStack.pop();
if(带(“k”)的温度启动){
K固定推力(温度);
}否则{
nStack.push(温度);
}
//检查
系统输出打印LN(kStack);
}

如果我运行代码,控制台会将用户输入的所有内容打印为输入内容。我认为文本由于某种原因没有拆分(listArea是swing jTextArea)。或者我在排序时犯了错误。是否应该以某种方式刷新temp?

您测试过字符(0)吗字符串求值的方法?而不是以?此用户输入的有效性如何?
kiss
nomad
normal
您的
split()
regex中需要反斜杠,而不是常规斜杠:
.split(\\r?\\n?\\s”)
@iamnotmaynard解决了这个问题,非常感谢!您测试了字符(0)字符串求值的方法?而不是以?这是如何有效的用户输入?
kiss
nomad
normal
split()
regex中需要反斜杠,而不是常规斜杠:
.split(\\r?\\n?\\s”)
@iamnotmaynard解决了这个问题,非常感谢!