2016-02-09 34 views
0

我有一個數據文件,它是一個名稱後面加上「*****」的列表,然後用整數繼續。如何掃描的名稱,然後用星號,然後通過掃描整數突破?掃描2種不同的數據類型的Java

回答

0

下面的代碼應該爲你

Scanner scanner = new Scanner(<INPUT_STR>).useDelimiter("[*****]"); 
    while (scanner.hasNext()) { 
     if (scanner.hasNextInt()) { 
      // For Integer 
     } else { 
      // For String 
     } 
    } 
0

工作,雖然這似乎是一個單調乏味的事情,我認爲這將解決這個問題,而如果分返回任何擔心,和出界。

final String x = "abc****12354"; 
    final Pattern p = Pattern.compile("[A-Z]*[a-z]*\\*{4}"); 
    final Matcher m = p.matcher(x); 
    while (m.find()) { 
     System.out.println(m.group()); 
    } 
    final Pattern p1 = Pattern.compile("\\*{4}[0-9]*"); 
    final Matcher m1 = p1.matcher(x); 
    while (m1.find()) { 
     System.out.println(m1.group()); 
    } 

第一圖案匹配減去最後一個4分(可以是子串-ED出)和第二模式匹配減去領先的4分(也可被移除)將得到請求的字段。