Java 使用空字符作为循环条件,程序在应该循环时结束
这个程序应该循环一个字符输入,如果没有写入任何内容,程序将不会编译,它不接受字符tegn='';。我如何创建一个循环,其中条件是没有为一个字符写入任何内容 更新: 我用Vishal K代码中的一个想法解决了我的代码,使用字符串来确定用户是否什么也没写:Java 使用空字符作为循环条件,程序在应该循环时结束,java,Java,这个程序应该循环一个字符输入,如果没有写入任何内容,程序将不会编译,它不接受字符tegn='';。我如何创建一个循环,其中条件是没有为一个字符写入任何内容 更新: 我用Vishal K代码中的一个想法解决了我的代码,使用字符串来确定用户是否什么也没写: String tegn = ""; do { tegn = showInputDialog("Input a char."); } while (tegn.equals("")); char chartegn = tegn.cha
String tegn = "";
do { tegn = showInputDialog("Input a char.");
} while (tegn.equals(""));
char chartegn = tegn.charAt(0);
问题是,如果在提示输入时只按enter键,则发送的是字符返回,而不是空格(“”) 我建议检查输入是否小于中心ascii值(空格和每个符号,字符从12月32日开始) 您可以将字符值转换为整数值。 (整数ascii=(整数)字符) 并使用它来验证您的输入
问题在于,如果在提示输入时只按enter键,则发送的是字符返回,而不是空格(“”) 我建议检查输入是否小于中心ascii值(空格和每个符号,字符从12月32日开始) 您可以将字符值转换为整数值。 (整数ascii=(整数)字符) 并使用它来验证您的输入 您可以尝试以下操作:
import static javax.swing.JOptionPane.*;
String str = "";
char tegn=' ';
do {
str = showInputDialog("Input a char.");
if (str != null && !"".equalsIgnoreCase(str.trim()))
{
tegn = str.charAt(0);
}
}while(str!=null && !"".equalsIgnoreCase(str.trim())
您可以尝试以下操作:
import static javax.swing.JOptionPane.*;
String str = "";
char tegn=' ';
do {
str = showInputDialog("Input a char.");
if (str != null && !"".equalsIgnoreCase(str.trim()))
{
tegn = str.charAt(0);
}
}while(str!=null && !"".equalsIgnoreCase(str.trim())
循环1圈后,它显然会结束,对吗?除非你一直提供
空间
作为输入。使用while(tegn='')
代替teadah-derp,是的,它是这样的,所以它可以像写的那样工作,但是如果我简单地按enter键怎么办,因为如果我用char-tegn='';它不会立即编译all@user2202185什么是输入对话框?控制台上的文本?摆动swt?还有其他人吗?看起来像JOptionPane.showInputDialog(),但是。。。发布更多详细信息。导入静态javax.swing.JOptionPane.*;循环1圈后,它显然会结束,对吗?除非你一直提供空间
作为输入。使用while(tegn='')
代替teadah-derp,是的,它是这样的,所以它可以像写的那样工作,但是如果我简单地按enter键怎么办,因为如果我用char-tegn='';它不会立即编译all@user2202185什么是输入对话框?控制台上的文本?摆动swt?还有其他人吗?看起来像JOptionPane.showInputDialog(),但是。。。发布更多详细信息。导入静态javax.swing.JOptionPane.*;尝试转换为int thingie,到目前为止,我得到了:char-tegn;do{tegn=showInputDialog(“写入字符”).charAt(0);int ascii=Integer.parseInt(tegn);}而(ascii<33);你仍然有同样的问题吗?是的,对于我来说,使用这种方法在编译过程中很难不出错,在尝试转换为int thingie时尝试了另一种方法string/char,到目前为止我得到了:char-tegn;do{tegn=showInputDialog(“写入字符”).charAt(0);int ascii=Integer.parseInt(tegn);}而(ascii<33);你仍然有同样的问题吗?是的,我很难用这种方法在编译时不出错,尝试一种不同的方法,使用string/char atmI将尝试类似的方法,1分钟对,所以我做了这个,它成功了,虽然我不太理解您的代码,但我一直尝试使用字符串,当循环完成时(用户为字符输入一些内容),我将字符串中的第一个符号转换为将要使用的字符,在循环之后:string tegn=“”;do{tegn=showInputDialog(“Skriv inn et tegn.”);而(tegn.equals(“”);charchartegn=tegn.charAt(0);。equalsIgnoreCase(str.trim())非常欢迎您使用StackOverflow.:)str.trim()。和“”。equalsIgnoreCase(str.trim())
检查str.trim()返回的字符串是否为空。如果是,则返回true,否则返回false。查看此处了解String
及其各种方法:接受后是否可以编辑答案?如果是这样的话,也许你也可以粘贴到“我的解决方案”中,任何对正在访问的其他ppl最合适的,并且可以看到解决方案的ppl,我都会尝试类似的方法,1分钟的时间,所以我做了这个,它成功了,尽管我不太理解你的代码,我一直在尝试使用字符串,当循环完成时(用户为char输入一些内容),我将字符串中的第一个符号转换为循环后将要使用的char:string tegn=“”;do{tegn=showInputDialog(“Skriv inn et tegn”);}而(tegn.equals(“”);char chartegn=tegn.charAt(0);.equalsIgnoreCase(str.trim())最欢迎使用StackOverflow.:)str.trim()。和“”。equalsIgnoreCase(str.trim())
检查str.trim()返回的字符串是否为空。如果是,则返回true,否则返回false。查看此处了解String
及其各种方法:接受后是否可以编辑答案?如果是这样的话,也许你也可以在“我的解决方案”中粘贴,任何对正在访问的其他ppl最合适的内容,都可以看到可以制作什么样的解决方案