Java 将用户输入排序到堆栈中
我刚刚开始使用Java,目前正在使用Netbeans。我正在尝试使用堆栈对用户提供的列表进行排序。我想根据字符串以k或n开头的内容,将不同的字符串放入不同的堆栈中。提供的列表是以k或n开头的随机长度字符串,用新行分隔 这是我当前的代码: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
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解决了这个问题,非常感谢!