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.");
}
問題はJOptionPane
、portField
. CharSequence
私が知る限り、数値のみを入力できるようにテストした方法は正しく、Java はブロック全体を無視して句にジャンプしますelse
。
なぜこうなった?else
使用せず、else if
代わりに使用する必要がありますか?