日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

输入字符和数字 java,验证输入仅为字符串,数字仅为JAVA

發布時間:2025/3/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 输入字符和数字 java,验证输入仅为字符串,数字仅为JAVA 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本問題已經有最佳答案,請猛點這里訪問。

我是一名學生,在驗證輸入方面有點問題。

String name;

System.out.println("Enter name:");

name = keyboard.nextLine();

//If name contain other than alphabetical character print an error

double number;

System.out.println("Enter number:");

name = keyboard.nextDouble();

//If number contain other than number print an error

我嘗試的是將字符串解析為double的測試,但我做不到。我不知道如何測試double是否是唯一的數字。

請告訴我該怎么做。

名稱使用regex [A-Za-z],數字使用\\d。但您不認為名稱可以包含除字母字符之外的其他字符嗎,例如空格?

@Christopher不是一個副本,因為它要求同時驗證數字和非數字輸入。但顯然關系重大。

順便說一下,我投了反對票。這個話題已經在這個網站上討論了很多次,你應該能夠通過一些先前的研究找到答案。

可以使用正則表達式檢查輸入是否與約束匹配,如下所示:

String name;

System.out.println("Enter name:");

name = keyboard.nextLine();

if (!name.matches("[a-zA-Z_]+")) {

System.out.println("Invalid name");

}

String number;

System.out.println("Enter number:");

number = keyboard.nextLine();

if (!number.matches("[0-9]+")) {

System.out.println("Invalid number");

}

這里有一個學習regex的好教程。

幾乎是對的-但是如果你想讓regex工作的話,你必須把這個數字讀成一個字符串。另外,您應該正確地縮進示例代碼。

是的,你是對的。

還有"更高級"的regex解決方案。Java模式文檔

如果使用nextline()讀取兩個輸入,則可以使用此(未測試的代碼):

boolean isWordOnly = Pattern.matches("\w*", name); ? ?//name is in your code

boolean isFloatOnly = Pattern.matches("\d*.?\d*", number); ? ?//number is in your code too

現在,太布爾值告訴您輸入中是否有所需的格式。您可以將它添加到do-while循環或任何您想要的循環中。

開始學習Reg(ular)Ex(Presions)是一個好主意,因為它們在字符串格式中很有用(假設您必須測試輸入是否是有效的電子郵件…)。通常也用于檢查SQL注入和應用程序和程序中的許多關鍵內容。

你好像在用scanner。如果是,可以使用scanner類'hasNextDouble()在讀取double之前檢查輸入是否為double,如下所示:

double number;

System.out.println("Enter number:");

if (keyboard.hasNextDouble()){

name = keyboard.nextDouble();

}

查看scanner類文檔了解更多信息。

double number = 0;

try {

number = Double.parseDouble(name)

} catch (NumberFormatException ex) {

System.out.println("Name is not a double.");

}

如果number不是雙份的,你可以抓一份NumberFormatException。

您可以循環遍歷String的每個字符,并使用Character.isAlphabetic(char)檢查它是否不是字母:

Scanner keyboard = new Scanner(System.in);

System.out.println("Enter name:");

String name = keyboard.nextLine();

for (char c : name.toCharArray()) {

if (!Character.isAlphabetic(c)){

System.out.println("INVALID");

break;

}

}

要只接受數字,可以使用Character.isDigit(char)函數執行類似的操作,但請注意,必須將輸入讀取為String而不是double,或者將輸入讀取為double并使用Double.toString(d)將其轉換為String。

總結

以上是生活随笔為你收集整理的输入字符和数字 java,验证输入仅为字符串,数字仅为JAVA的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。