我要驗證一個字符串,某些格式規則,這些規則是:驗證一個字符串格式規則的Java
string : string : int : int
(包括冒號)。
如何檢查字符串是否包含;兩個字符串,三個冒號和兩個整數。另外一個字符串可能有一個空間,例如「你好,」每個整數可以是任意長度。
已經嘗試了一段時間,無法找到一個整潔的方式。感謝您的任何幫助:)
我要驗證一個字符串,某些格式規則,這些規則是:驗證一個字符串格式規則的Java
string : string : int : int
(包括冒號)。
如何檢查字符串是否包含;兩個字符串,三個冒號和兩個整數。另外一個字符串可能有一個空間,例如「你好,」每個整數可以是任意長度。
已經嘗試了一段時間,無法找到一個整潔的方式。感謝您的任何幫助:)
你可以使用正則表達式做檢查:如果每部分包含至少一個有效的字符
public boolean match(String s) {
return s.matches("^.+ : .+ : \\d+ : \\d+$");
}
此測試(即,對於一部分的任何字符string
和部分int
的任何數字)與:
作爲它們之間的分隔符。
測試
System.out.println(match("blub : test : 100 : 111")); // true
System.out.println(match("1 : 1 : 1 : 1")); // true
System.out.println(match("blub : test : foo : bar")); // false
System.out.println(match("blub : test : 0.1 : 0.1")); // false
System.out.println(match("this is another : test : 100 : 111")); // true
System.out.println(match("!\"§$%&/()=?) : .; : : : ; : 100 : 111")); // true
System.out.println(match(" : : 100 : 111")); // false
心靈測試match("!\"§$%&/()=?) : .; : : : ; : 100 : 111")
。它返回true,因爲額外的:
是第二個string
部分的一部分。
輝煌!馬上工作。我一直在看正則表達式,但不知道我可以像這樣將它們加在一起。謝謝 – user3648686 2014-10-04 12:35:12
使用正則表達式 - 類匹配器,應該工作正常。
例如:
import java.util.Scanner;
public class ValidateInput
{
/// validate first name
public static Boolean validateFirstName(String firstName)
{
return firstName.matches("[A-Z][a-zA-Z]*";
}//// end method validateFirstName
}
/////
public void main(String[] args)
{
//// get user input
Scanner scanner = new Scanner(System.in);
System.out.print("Please, enter first name: ");
//// validate user input and display error message
System.out.print("\nValidate Result:");
if(!ValidateInput.validateFirstName(firstName())
System.out.print("Invalide first name");
}
這與這個問題有什麼關係? – Bobulous 2014-10-04 12:24:56
這是他想要的一個例子,不再顯示正則表達式的使用 – mkwilfreid 2014-10-04 12:25:55
堆棧溢出的答案應該是針對原始問題的解決方案。 – Bobulous 2014-10-04 12:26:56
冒號周圍是否需要空格?你能告訴我們任何代碼嗎?樣本輸入和輸出(s)? – 2014-10-04 12:15:56
對字符串使用正則表達式匹配器。請參閱主題上的[本教程](http://tutorials.jenkov.com/java-regex/matcher.html) – Benvorth 2014-10-04 12:17:12
使用正則表達式。或者讀取字符串javadoc並解析它(indexOf(),substring(),Character.isDigit()可以作爲有用的方法介紹)。 – 2014-10-04 12:17:31