2017-01-15 5 views
-1

テストのためにいくつかのスレッドを追加したデモ登録プログラムを作成しました。ユーザー名は単なる数字(例username = 141235)ではありませんが、ユーザー名= John124のようなものです。私は一般的な例外が呼び出されているが、それはそれを防止していない。誰も助けることができますか?String/int Javaでの例外キャッチ

package com.company; 


import java.util.Scanner; 


public class tested extends Thread { 
    Scanner charles = new Scanner(System.in); 
    @Override 
    public void run() { 
     System.out.println("New User Sign On"); 
     System.out.println("==================="); 
     System.out.println("Please Enter A New User Name"); 
     try{ 
     String choose = charles.nextLine(); 
      System.out.println("Submitting....."); 
     Thread.sleep(2000); 
      System.out.println("Cross Referencing Username......"); 
      //Checking for username in database 
      Thread.sleep(2000); 
      System.out.println("New Username Accepted"); 
      //Username added to database 
      Thread.sleep(900); 
      System.out.println("Your new username is "+choose+". Now enjoy our FREE services."); 
    }catch (Exception e){ 
      getStackTrace(); 
     } 
} 
} 
+2

_「私は、一般的な例外が呼び出されているが、それはそれを防ぐことはないです」_ - 申し訳ありませんが、それが解析可能な英語ではありません。あなたは何を意味するのか明確にしていただけますか?例外がある場合は、完全なスタックトレースも含めてください。 –

答えて

-1

ifステートメント内にtryステートメントを配置します。ステートメントはcharles.hasNextLine()を条件として持つ必要があります。

+0

これがどのように質問に答えるか説明できますか?あなたのポイントを示すサンプルコードを提供することができます。 – soundslikeodd

0

このようなものを使用してください。すべての数字を空白に置き換えます。

do { 
System.out.println("Please enter a username"); 
choose=charles.nextLine(); 
} while (choose.replaceAll("\\d", "").equals("")) 
0

プログラムが完全ではないと思われるため、デバッグできません。しかし、あなたの目標の一部がユーザ名に特定のルールを適用することである場合は、最初にルールが何であるかを明確に定義する必要があります。たとえば、「123456a」は許可されますか? (数字とアルファの両方がありますが、数字でも始まります)。そして、正規表現を使用して、あなたのルールを表現し、あなたのためにチェックを行うことを検討することができます。このプログラムの

public class ValidUsername { 

    public static void main(String[] args) { 
     String[] tests = { 
       "123456"  // expect invalid: not start with alpha 
       , "a123456"  // expect valid 
       , "123456a"  // expect invalid: not start with alpha 
       , ""   // expect invalid: not start with alpha 
       , "a"   // expect valid 
       , "a12345678" // expect invalid: too many characters 
     }; 

     /* 
     * username must start with an alpha characters [a-zA-Z], 
     * and then follow by not more than 7 alphanumeric characters 
     */ 
     String regex = "[a-zA-Z]\\w{0,7}"; 
     for (String test: tests) { 
      boolean match = test.matches(regex); 
      System.out.format("test %10s %6s a valid username%n" 
        , test, (match ? "is" : "is not")); 
     } 
    } 

} 

出力::次のプログラムは、特定のルールを前提としてい

test  123456 is not a valid username 
test a123456  is a valid username 
test 123456a is not a valid username 
test   is not a valid username 
test   a  is a valid username 
test a12345678 is not a valid username