Java 项目赢得';I don’我看不出有什么问题
这是我的基本程序的一部分。我正在努力防止错误或错误信息通过。所以在代码的这一部分,我在用户输入姓名的地方设置了它,但是如果它包含数字或符号,它应该返回一个错误,直到输入适当的内容。然而,这只是有时起作用。我想不出它什么时候会起作用,什么时候不会起作用。我注意到的唯一一件事是,时间越长,经过的可能性就越大Java 项目赢得';I don’我看不出有什么问题,java,string,for-loop,boolean,charat,Java,String,For Loop,Boolean,Charat,这是我的基本程序的一部分。我正在努力防止错误或错误信息通过。所以在代码的这一部分,我在用户输入姓名的地方设置了它,但是如果它包含数字或符号,它应该返回一个错误,直到输入适当的内容。然而,这只是有时起作用。我想不出它什么时候会起作用,什么时候不会起作用。我注意到的唯一一件事是,时间越长,经过的可能性就越大 import java.util.Scanner; public class Challenge1Easy { public static void main(String[] arg
import java.util.Scanner;
public class Challenge1Easy
{
public static void main(String[] args)
{
Scanner reader = new Scanner(System.in);
String name, username;
int age;
boolean good = false;
System.out.print("What's your name? ");
name = reader.nextLine();
String[] name1 = name.split("");
do
{
System.out.print("Sorry, your \"name\" has characters that aren't letters in it. Please enter a real name. ");
name = reader.nextLine();
String[] name2 = name.split("");
for (int i = 0; i < name.length(); i++)
{
if(!Character.isLetter(name.charAt(i)))
{
good = false;
}
else
{
good = true;
}
}
}
while(good != true);
import java.util.Scanner;
公开课挑战1容易
{
公共静态void main(字符串[]args)
{
扫描仪阅读器=新扫描仪(System.in);
字符串名称、用户名;
智力年龄;
布尔好=假;
系统输出打印(“你叫什么名字?”);
name=reader.nextLine();
字符串[]name1=name.split(“”);
做
{
System.out.print(“对不起,您的\“name\”中的字符不是字母,请输入真实姓名。”);
name=reader.nextLine();
字符串[]name2=name.split(“”);
对于(int i=0;i
我在这里查看了一些不同的问题,从这些问题/答案中提取了一些信息,并试图在我的程序中实现它,但显然有些东西不起作用。我做错了什么,有时它会捕捉到它,但有时它不会?输入类似于Man99
的内容将导致提示输入新代码要显示的名称。但是,输入类似于khewriuhweiuf8489358934589734985345hiewf的内容将不会激活它
请忽略任何未使用的变量。它们稍后会在程序中使用,但不会影响我发布的内容。试试这个
boolean good = true;
do
{
for (int i = 0; i < name.length(); i++)
{
if(!Character.isLetter(name.charAt(i)))
{
good = false;
break;
}
else
{
continue;
}
}
if (!good) {
System.out.print("Sorry, your \"name\" has characters that aren't letters in it. Please enter a real name. ");
name = reader.nextLine();
}
}
while(good != true);
boolean good=true;
做
{
对于(int i=0;i
花点时间通读您的for循环
,如果必须,请将其读出并卸载
for (int i = 0; i < name.length(); i++)
{
if(!Character.isLetter(name.charAt(i)))
{
good = false;
}
else
{
good = true;
}
}
现在,如果你想做一些非常简单的事情,你可以使用像
good = text.matches("[a-zA-Z]");
只有当名称
包含a-z
之间的字符时,这将返回true
。显然,这排除了
之类的情况,但您可以扩展此想法以满足更多要求
good = text.matches("[a-zA-Z]");