首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java忽略布尔值计算

问Java忽略布尔值计算
EN

Stack Overflow用户
提问于 2013-06-30 08:47:24
回答 1查看 96关注 0票数 0
代码语言:javascript
复制
if (!(portField.getText().equals(""))) {                
    String p = portField.getText();
    CharSequence numbers = "0123456789";

    if (p.contains(numbers)) {

        listener = new ServerSocket(Integer.parseInt(p));

        while (true) {
            Socket socket = listener.accept();
            try {
                PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
                out.println("Hi there, human.");    
            } finally {
                socket.close(); 
            }
    }} else {
        JOptionPane.showMessageDialog(null, "Only numbers are allowed.");
    }
} else {
    JOptionPane.showMessageDialog(null, "Please input a port.");
}

问题是:即使我在portField中输入数字,JOptionPane也会弹出“只允许数字”的提示。据我所知,CharSequence和我测试的只允许输入数字的方法是正确的,它忽略了整个代码块并跳转到else子句。

为什么会发生这种情况?我应该不使用else而改用else if吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-30 08:50:04

contains表示包含整个0123456789。例如:"a0123456789b"

请改用p.matches("[0-9]*");。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17386051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档