2016-11-30 22 views
-1

我想獲得花車正常表達式的工作。我不斷收到錯誤正則表達式對於花車

無法在基本類型float上調用matches(String)。

任何幫助?我有點失落。

System.out.print("Enter $ amount of loan:"); 
payment = scanner.nextFloat(); 

while (!Regulations.paymentmatch(payment)) { 
    System.out.println("Information Not Correctly Entered"); 
    System.out.printf("Please try again: "); 
    payment = scanner.nextFloat(); 
} 

public static boolean paymentmatch(float a) { 
    return a.matches("\\d+.?\\d{2}"); 
} 
+1

'不能在基本類型float「'上調用匹配(字符串)'它告訴你,你需要一個字符串,所以'String.valueOf(a).mat..' –

+0

正則表達式對字符串有效。 – mba12

+2

爲什麼不使用'scanner.hasNextFloat()'? – Mureinik

回答

1

如果你想允許用戶輸入一個非浮點值,然後讀取它,並告訴他們這不是一個有效的浮點值,則不能使用nextFloat讀它,因爲...如果它不是有效的浮點值,它將無法工作。

要麼使用hasNextFloat,它會告訴你的掃描儀是否可以讀取float(但不會讓你告訴他們鍵入的東西,不是一個浮動用戶),或使用nextLine閱讀任何他們類型(如一個String),然後驗證(通過matches)。