2015-07-19 70 views
0

編號系統/序列/圖案在一堆串的我有這樣這些識別在Java

1. INTRODUCTION 
2. BASICS 
3. ADVANCED CONCEPTS 
4. EXAMPLES 

一串串的上面的每個行是一個單獨的字符串。如下 -

A. INTRODUCTION 
B. BASICS 
C. .. 

OR爲

I) INTRODUCTION 
II) BASICS 
III) ... 

OR爲

10.01 INTRODUCTION 
10.02 BASICS 
... 

所以,我試圖找出(和潛在地消除)任何類型的序列相同的字符串可以出現(數字,浮動,羅馬數字和完全未知的類型)在這些字符串之間退出。 在java中這樣做的最好方法是什麼?

+6

[你嘗試過什麼?](http://mattgemmell.com/你有什麼嘗試/) – RealSkeptic

+0

有掃描儀類可以幫助你,http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html –

+0

你想解析這些字符串,但我不明白y你想要做的事情,提供一個輸入/輸出的例子。 – m0skit0

回答

0

你想分裂中間空間嗎?

public class TestApp { 
    public static void main(String[] args) { 
     String[] strings = new String[] { 
       "1. INTRODUCTION", 
       "2. BASICS", 
       "3. ADVANCED CONCEPTS", 
       "4. EXAMPLES"}; 

     for(String string : strings) { 
      String[] tokens = string.split(" "); 
      System.out.println("[" + string + "][" + tokens[0] + "][" + tokens[1] + "]"); 
     } 
    } 
} 

輸出是

[1. INTRODUCTION][1.][INTRODUCTION] 
[2. BASICS][2.][BASICS] 
[3. ADVANCED CONCEPTS][3.][ADVANCED] 
[4. EXAMPLES][4.][EXAMPLES] 

如果你知道你的模式用一個簡單的設計模式,這樣

public class TestApp { 

    private static IPatternStripper[] STRIPPERS = new IPatternStripper[] { 
    new NumeralStripper() 
    // more types here ... 
    }; 

    public static void main(String[] args) { 

    String[] strings = new String[] { 
     "1. INTRODUCTION", 
     "2. BASICS", 
     "3. ADVANCED CONCEPTS", 
      "4. EXAMPLES"}; 

    for(String string : strings) { 
     IPatternStripper foundStripper = null; 
     for(IPatternStripper stripper : STRIPPERS) { 
     if(stripper.isPatternApplicable(string)) { 
      foundStripper = stripper; 
      break; 
     } 
     } 
     if(foundStripper != null) { 
     System.out.println("SUCCESS: " + foundStripper.stripPattern(string)); 
     } 
     else { 
     System.out.println("ERROR: NO STRIPPER CAN PROCESS: " + string); 
     } 
    } 
    } 
} 

interface IPatternStripper { 
    public boolean isPatternApplicable(String line); 
    public String stripPattern(String line); 
} 

class NumeralStripper implements IPatternStripper { 

    @Override 
    public boolean isPatternApplicable(String line) { 
    boolean result = false; 

    // code here checks whether this stripper is appropriate  
    return result; 
    } 

    @Override 
    public String stripPattern(String line) { 
    String value = line; 
    // code here to do your stripping 
    return value; 
    } 
} 
+0

沒有必要存在空間。 – Jay

+0

你知道你的訂購模式嗎? – Constantin

+0

我正在嘗試處理數百個可能有任何模式的文檔。但正常模式是我上面列出的模式。有像1)簡介或(A)簡介或i.INTRODUCTION的情景。即使你堅持使用數字,數字和字母,也可以有很多排序/變化。 – Jay