gpt4 book ai didi

java - 解析java中的字符串

转载 作者:行者123 更新时间:2023-11-30 06:27:31 25 4
gpt4 key购买 nike

之前有人问过同样的问题,但我的帮助不足以让我解决它。当我多次运行该程序时,对于中间带有逗号的字符串(例如 Washington,DC )来说效果很好。对于不带逗号的字符串(例如 Washington DC),程序应将错误消息打印到屏幕上并提示用户再次输入正确的输入。是的,第一次运行时确实如此。然而,在第二次运行时,它失败了,我的怀疑是在 while 循环中。

控制台快照:输入输入字符串:Washington DC =>第一次输入并打印以下两行

错误:字符串中没有逗号。

输入输入字符串:华盛顿特区 => 第二次,没有打印输出,即失败

这是我寻求您帮助的尝试。

public class practice {

public static void main(String[] args) {

Scanner scnr = new Scanner(System.in);
String userInput = "";
String delimit =",";
boolean inputString = false;

System.out.println("Enter input string:");
userInput = scnr.nextLine();
while (!inputString) {

if (userInput.contains(delimit)){
String[] userArray = userInput.split(delimit);
// for(int i=0; i<userArray.length-1; i++){
System.out.println("First word: " + userArray[0]); //space
System.out.println("Second word:" + userArray[1]);
System.out.println();
//}
}

else if (!userInput.contains(delimit)){
System.out.println("Error: No comma in string.");
inputString= true;
}
System.out.println("Enter input string:");
userInput = scnr.nextLine();
while(inputString);
}
}
}

最佳答案

您可以使用简单的正则表达式轻松解决此问题^[A-Z][A-Za-z]+, [A-Z][A-Za-z]+$

因此您可以使用以下命令检查输入:

boolean check = str.matches("^[A-Z][A-Za-z]+, [A-Z][A-Za-z]+$");
<小时/>

然后您可以使用 do{}while() 循环代替,因此您的代码应如下所示:

public static void main(String[] args) {

Scanner scnr = new Scanner(System.in);
String userInput;

do {
System.out.println("Enter input string:");
userInput = scnr.nextLine();
} while (!userInput.matches("^[A-Z][A-Za-z]+, [A-Z][A-Za-z]+$"));
}
<小时/>

regex demo

<小时/>

解决方案2

...But I can't apply regex at this time and I wish others help me to finish up the work the way I set it up

在这种情况下,您可以像这样使用 do{}while(); :

Scanner scnr = new Scanner(System.in);
String userInput;
String delimit = ",";
boolean inputString = false;
do {
System.out.println("Enter input string:");
userInput = scnr.nextLine();
if (userInput.contains(delimit)) {
String[] userArray = userInput.split(delimit);
System.out.println("First word: " + userArray[0]);
System.out.println("Second word:" + userArray[1]);
System.out.println();
} else if (!userInput.contains(delimit)) {
System.out.println("Error: No comma in string.");
inputString = true;
}
} while (inputString);

关于java - 解析java中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46847663/

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