在Matrix或Tabular中拆分String并存储到ArrayList中

时间:2015-03-27 09:46:49

标签: java regex arraylist split stringtokenizer

我想执行拆分逻辑,将单个字符串转换为矩阵或表格形式。 我有以下字符串结构。

BlackPerl
Bill No: 101
Bill Date: 27/03/2015
Sr. Particulars     Qty   Rate     Amount
1   Knife           2     10.00    20.00
2   Pirates Cap     1     200.00   200.00
Total Amount 220.00

每次刺痛结构相同,但产品应该是可变的(意味着产品可以增加或减少)

我期待像这样的输出

Sr. | Particulars | Qty | Rate   | Amount 
1   | Knife       | 2   | 10.00  | 20.00 
2   | Pirates Cap | 1   | 200.00 | 200.00 

意味着我需要将数据存储在单独的ArrayList中,如:
Sr.ArrayList包含1和2,Particulars ArrayList包含Knife和Pirates Cap等。

我尝试过几件事,但没有成功 首先我想我必须使用这个Link来将字符串拆分成表格 然后尝试了另一个Link2Link3

任何人都可以帮助我。提前致谢。

更新1

首先我认为我需要使用StringTokenizer来分割字符串,以便我尝试

StringTokenizer st = new StringTokenizer(text, "\\s*[Sr.]+\\s*");
    while(st.hasMoreTokens()){
        Log.v(TAG, st.nextToken());
    }

然后再次尝试拆分使用拆分 String lines [] = text.split(" Sr。");

for(int i = 0 ; i < lines.length ; i++) {
    Log.v(TAG, "Line:: "+i+ " -- "+lines[i]);
    }

1 个答案:

答案 0 :(得分:0)

正如你所描述的那样,我会像这样解决它。

  1. 在“金额”和“总计”之间取出字符串的一部分。您可以使用String.indexOf()
  2. 使用换行符将其拆分为部分
  3. 使用空格标志
  4. 将每个部件拆分为子部件
  5. 由于第二个子部分可能包含空格,如果您有超过5个子部分,则合并第2个和第3个