2014-04-04 35 views
0

我正試圖在Java中解決這個問題。我有一串很長的信息,我想根據字段的長度來分割字符串。在各個索引位置拆分字符串

實施例:`名姓YY-MM-dd549Eastwolframstreet

我有其長度沿給定字段的列表。有n個字段。 示例字段:

  • 姓長度:9
  • 名字長度:9
  • 日期長度:8
  • 地址:30

如果名字是小於9個字符空格佔據剩下的位置。 即Lastname是長度9,但只剩下8個字母,一個是空格。

從每個給定長度中提取這些字段的最佳方法是什麼?

回答

1

試試這個,

String value = "FirstNameLastName yy-mm-ddAddress      FirstNameLastName yy-mm-ddAddress      FirstNameLastName yy-mm-ddAddress      "; 

    for (int i = 0; i < value.length(); i++) 
    { 
     System.out.println("First Name : "+value.substring(i, i + 9)); 
     System.out.println("Last Name : "+value.substring((i + 9), i + 18)); 
     System.out.println("Date : "+value.substring(i + 18, i + 26)); 
     System.out.println("Address : "+value.substring(i + 26, i + 56)); 
     i = i + 55; 
    } 
1

瞭解每個部件都是精確的長度 - 如果碰巧較小,則會填充空格 - 這對於使用String.substring(i,i)String.trim()來說是一個完美的情況。例如:str.substring(0, 9)是第9個字符。現在修剪它,任何額外的墊空間將被消除。

+0

我已經編輯我的問題。每個字段的長度不一樣。我需要讀取字段以及字符串來分割字符串。 「 – Niz

+0

」如果名稱少於9個字符,則佔用剩餘位置,例如姓氏長度爲9,但只剩下8個字母,其中一個是空格。「名稱總是9個字符。如果它較少,則用空格填充。這似乎是你在說什麼... – aliteralmind

+0

子串絕對是其中一個選項。試圖看到一種更有效的方式來循環遍歷字段並將其拆分。 – Niz