前提・実現したいこと
Java初心者です。
htmlファイルでテキストボックスに任意の値(半角数字)を5つ入力し昇順に並べ替えるというプログラムを作成中です。
エラーなく実行できるのですが、全角の数値も半角として表示されてしまうので、
全角の数値の時に例外処理をしたいのですが、方法がわかりません。
package servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Servlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { request.setCharacterEncoding("UTF-8"); String[] values = request.getParameterValues("num"); response.setContentType("text/html; charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<body>" + "昇順表示" + "</body>" + "<br>"); int[] valueInt = new int[values.length]; try { for (int i = 0; i < values.length; i++) { valueInt[i] = Integer.parseInt(values[i]); } } catch (NumberFormatException ex) { out.println("全てのテキストボックスに半角数字を入力してください。"); return; } for (int i = 0; i < values.length; i++) { int minIdx = i; for (int j = i + 1; j < values.length; j++) { if (valueInt[j] < valueInt[minIdx]) { minIdx = j; } } int temp = valueInt[i]; valueInt[i] = valueInt[minIdx]; valueInt[minIdx] = temp; } for (int i = 0; i < values.length; i++) { out.println(valueInt[i]); out.println( "<br>" ); } } } 以下html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>問題</title> </head> <body> 半角数字を入力してください。 <form action="text" method="post"> <input type="text" name="num" value=""> <input type="text" name="num" value=""> <input type="text" name="num" value=""> <input type="text" name="num" value=""> <input type="text" name="num" value=""> <p><input type="submit"name="button" value="送信"></p> </form> </body> </html>
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。