max092012
max092012

Reputation: 407

Split a field through array in java

I would like to know how to split a field through array using Java. For example we have GLaccount like AAAA-BBBB-CCCC and we would like to split each component and store it in an variable however the GLaccount may have AAAA-BBBB (no third component) so in this case variable segment3 throws NULL POINTER exception so I am not sure on how to fix this since I am new to Java.

String GL = getOwner().getGL("GLACCT");
String segment1 = GL.split("-")[0];
String segment2 = GL.split("-")[1];
String segment3 = GL.split("-")[2]; 

Upvotes: 0

Views: 521

Answers (3)

mommcilo
mommcilo

Reputation: 946

import java.util.Arrays;    
List<String> list = Arrays.asList(GL.split("-"));

With this code you do not need to think if you have 2,3 or 10 strings, and to add new if for every new one.

Upvotes: 0

S&#233;bastien Helbert
S&#233;bastien Helbert

Reputation: 2210

Use split method (once) and check returned array length :

 String[] values3 = "AAAA-BBBB-CCCC".split("-");
 // values.length == 3 


 String[] values2 = "AAAA-BBBB".split("-");
 // values2.length == 2 

Upvotes: 0

DhaRmvEEr siNgh
DhaRmvEEr siNgh

Reputation: 2098

Using split("-" ) will give you an array of strings. before using array value, you can check the size of array that if it contains enough elements to use..

String GL = getOwner().getGL("GLACCT"); 
String[] array=GL.split("-");
String segment1 = array[0]; 
String segment2 = array[1]; 

//check if array have 3rd element 
if(array.length >2)
      String segment3 = array[2];
else
       System.out.println("No third element") ;

Upvotes: 1

Related Questions