Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用空字符作为循环条件,程序在应该循环时结束_Java - Fatal编程技术网

Java 使用空字符作为循环条件,程序在应该循环时结束

Java 使用空字符作为循环条件,程序在应该循环时结束,java,Java,这个程序应该循环一个字符输入,如果没有写入任何内容,程序将不会编译,它不接受字符tegn='';。我如何创建一个循环,其中条件是没有为一个字符写入任何内容 更新: 我用Vishal K代码中的一个想法解决了我的代码,使用字符串来确定用户是否什么也没写: String tegn = ""; do { tegn = showInputDialog("Input a char."); } while (tegn.equals("")); char chartegn = tegn.cha

这个程序应该循环一个字符输入,如果没有写入任何内容,程序将不会编译,它不接受字符tegn='';。我如何创建一个循环,其中条件是没有为一个字符写入任何内容

更新: 我用Vishal K代码中的一个想法解决了我的代码,使用字符串来确定用户是否什么也没写:

    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最合适的内容,都可以看到可以制作什么样的解决方案