2014-10-09 277 views
1

我正在開發一個程序,該程序是一個簡單語言的解釋程序,可用於集合並執行Set操作。它目前僅適用於持有號碼的集合。檢查字符串是否包含正則表達式匹配

當用戶定義了一組,輸入看起來是這樣的:set1 = {1, 25, 5, 6};

輸入像set1 = { 1 , 25 , 5, 6};也能正常工作,但

set1 = { 1 25 , 5,6};不應該。

所以基本上無論空格的數量,如果有數字之間的","它很好。

我要的是檢查是否有一個數字,後跟空格和另一個號碼,中間沒有任何",",任何地方String

目前,我這樣做:

Pattern pattern = Pattern.compile("[0-9][\" \"]+[0-9]"); 
Matcher matcher = pattern.matcher(input); 
if(matcher.find()) return false; 

和它工作得很好。但這是一項大學任務,我不確定我是否可以使用PatternMatcher

所以我的問題是,有沒有其他方法可以檢查String是否包含正則表達式?或者有沒有其他更簡單的方法來實現這一點?

回答

1

因爲它是一個任務,我不會寫出來的代碼,但一種替代方案是:

  • 拆分對,令牌字符串(使用String.split()
  • 對於所得的每個成員拆分數組:
    • 從成員
    • 修剪開頭和結尾的空格如果修剪成員是一個整數(我會讓你想出如何確定):
      • 它不符合標準指定
    • 否則:
      • 這有可能是該令牌可滿足您的條件(包含多個整數和空間,但沒有逗號。有幾種方法可以確定:在" "上進行拆分;使用一個while循環,或者其他的東西。我會讓你弄清楚。
+0

良好,但如果我有上',''此{1 2,3,4}'和分裂然後,如果我檢查'分裂[0]'這將是'12'這是一個整數,但輸入仍然是錯誤的。 – qbit 2014-10-09 00:17:40

+0

不,在這種情況下,'split [0]'是'1 2'(空間將被保留),當然這不是一個整數。 – 2014-10-09 00:20:08

+0

但是,如果我不刪除該索引上的空格,那意味着我不會刪除它們,所以對split [1] =「2」'的檢查仍然會失敗。對? – qbit 2014-10-09 00:23:41

相關問題