Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.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 Cmd窗口挂起,选项显示Msg不';t显示_Java_Stringbuilder_Break_Freeze_Joptionpane - Fatal编程技术网

Java Cmd窗口挂起,选项显示Msg不';t显示

Java Cmd窗口挂起,选项显示Msg不';t显示,java,stringbuilder,break,freeze,joptionpane,Java,Stringbuilder,Break,Freeze,Joptionpane,我试图要求用户输入全名,我将从第一个名字和第二个名字中提取第一个字符。我还将询问用户的街道地址,我将从地址中提取住房单元号 该计划供用户输入类似于:John Smith的内容。地址:主大街1234号 经过处理后,输出将是JS1234 我通过前两个对话框正确编译和执行 框,但命令窗口将挂起,并且不会生成最终结果 显示包含预期输出的消息对话框。我必须按Ctrl+C组合键 打破死刑。我想我需要 以某种方式涉及StringBuilder,但不确定如何使用JOption 谢谢 杰里米 import

我试图要求用户输入全名,我将从第一个名字和第二个名字中提取第一个字符。我还将询问用户的街道地址,我将从地址中提取住房单元号

该计划供用户输入类似于:John Smith的内容。地址:主大街1234号
经过处理后,输出将是JS1234

我通过前两个对话框正确编译和执行 框,但命令窗口将挂起,并且不会生成最终结果 显示包含预期输出的消息对话框。我必须按Ctrl+C组合键 打破死刑。我想我需要 以某种方式涉及StringBuilder,但不确定如何使用JOption

谢谢

杰里米

    import java.util.*;
    import java.lang.*;
    import javax.swing.*;
    public class ConstructID
    {
            public static void main(String[] args) 
        {
            String name;
            String aInitial = "";
            String bInitial = "";
            String sAdd;
            String unit = "";
            int i;
            int j;

            name = JOptionPane.showInputDialog(null,
                           "Please enter your full name. ");
            sAdd = JOptionPane.showInputDialog(null,
                           "Please enter your street address. ");

            i = 0;
            while(i < name.length())
            {
                if(name.charAt(i) == ' ')
                { 
                    aInitial = name.substring(0, i);
                    bInitial = name.substring(i + 1, name.length());
                    i = name.length();
                    ++i;
                }
            }
            j = 0;
            while(j < sAdd.length())
            {
                if(sAdd.charAt(j) == ' ')
                {
                    unit = sAdd.substring(0, j);
                    j = sAdd.length();
                    ++j;
                }
            }
            JOptionPane.showMessageDialog(null, "Your unique ID is " + 
                        aInitial + bInitial + unit);
        }
    }
import java.util.*;
导入java.lang.*;
导入javax.swing.*;
公共类构造函数ID
{
公共静态void main(字符串[]args)
{
字符串名;
字符串aininitial=“”;
字符串bInitial=“”;
弦鞍;
字符串单位=”;
int i;
int j;
name=JOptionPane.showInputDialog(null,
“请输入您的全名。”);
sAdd=JOptionPane.showInputDialog(空,
“请输入您的街道地址。”);
i=0;
而(i
当第一个字符不是空格时,while循环会导致无限循环。除非获得空格字符,否则不会增加循环计数器,因此它将挂起在任何无空格字符上


此外,对于这种类型的解析,您可以使用String.split()或regexp。

我甚至不确定String.split()或regexp是什么……为了消除基于charAt()中的“”的无限循环的问题,我将名称字符串分为两个:firstName和secondName。这样,我就不必担心从一个输入中提取到多个字符。然而,即使删除了空格字符,我仍然有一个挂起的终端。