2017-11-09 3 views
0

Ich bekomme Zeit wie folgt.Split String von der Zeit

" Time : 06:00:00 AM " 

Ich habe folgende Split-Methode verwendet, split(":"). Dann teilt es sich die Zeit von allen ":" in String.

Ich möchte die Zeit nach der ersten ":" trennen und entfernen Sie die "AM" Fraktion von damals.

Bitte kann mir jemand mit diesem Code helfen.

Ich habe diese einfache Probe wie folgt bauen. Mein Versuch, Daten nach ":" zu teilen. Das obige Problem tritt auf, wenn es zu einer Zwischenzeit kommt.

import java.util.ArrayList; 
import java.util.List; 

public class StringBuilderSample { 
    public static void main(String []arg) { 
     List<Object> dataList = new ArrayList<Object>(); 
     Object[] dataArr = { 
       "Serial no : 10", 
       "Supplier ID : 1", 
       "Supplier Name : Md40", 
       "GRN no : 20555", 
       "Bag ID : 10", 
       "Weight : 500", 
       "Date : 09-10-2017", 
       "Time : 16:09 PM", 
       "User ID : 204" 
     }; 
     for(int j=0;j<dataArr.length;j++) { 
      String arrayData = dataArr[j].toString(); 
      Object[] fraction = arrayData.split(":"); 
      if(fraction.length>2) { 
       StringBuilder strBuilder = new StringBuilder(); 
       for(int i=1; i<fraction.length;i++) { 
        strBuilder.append(fraction[i]); 
       } 
       String newString = strBuilder.toString(); 
       dataList.add(newString); 
      }else { 
       dataList.add(fraction[1]); 
      } 
     } 
     for(Object data : dataList) { 
      System.out.println(data); 
     } 


    } 

} 
+0

Welche Sprache/Werkzeug benutzen Sie? – Toto

+0

Ich mache das mit Java. – MD40

+0

Ich habe den Code erneut für mehr Details bearbeitet. – MD40

Antwort

0

Sie könnten den Grenzwert Parameter der Split-Methode verwenden:

Object[] fraction = arrayData.split(":", 2); 

dieses gibt:

fraction[0] --> Time 
fraction[1] --> 16:09 PM 
+0

Vielen Dank Toto. Dein Vorschlag hat mein Problem gelöst. – MD40

+0

@ MD40: Gern geschehen, froh, dass es hilft. – Toto

0

Wenn Ihr Problem die Zeichenfolge aufgeteilt ist "Serien-Nr: 10" auf "10" für alle Objekte und die Zeit hat ":" und was Ihnen Probleme bereitet, dann können Sie den folgenden Code versuchen

for(int j=0;j<dataArr.length;j++) { 
     String arrayData = dataArr[j].toString(); 
     String fraction = arrayData.substring(arrayData.indexOf(":") + 1); 
     dataList.add(fraction); 
    } 
    for(Object data : dataList) { 
     System.out.println(data); 
    } 
+0

Danke ksnagendran26. Das funktioniert auch für mich. – MD40