在java中通过数组拆分字段

在java中通过数组拆分字段,java,Java,我想知道如何使用Java通过数组拆分字段。例如,我们有像AAAA-BBBB-CCCC这样的GLaccount,我们希望分割每个组件并将其存储在变量中,但是GLaccount可能有AAAA-BBBB(没有第三个组件),所以在这种情况下,变量segment3抛出空指针异常,所以我不确定如何修复,因为我是Java新手 String GL = getOwner().getGL("GLACCT"); String segment1 = GL.split("-")[0]; String segment2 =

我想知道如何使用Java通过数组拆分字段。例如,我们有像AAAA-BBBB-CCCC这样的GLaccount,我们希望分割每个组件并将其存储在变量中,但是GLaccount可能有AAAA-BBBB(没有第三个组件),所以在这种情况下,变量segment3抛出空指针异常,所以我不确定如何修复,因为我是Java新手

String GL = getOwner().getGL("GLACCT");
String segment1 = GL.split("-")[0];
String segment2 = GL.split("-")[1];
String segment3 = GL.split("-")[2]; 
使用split(“-”)将得到一个字符串数组。 在使用数组值之前,您可以检查数组的大小,如果它包含足够的元素可供使用

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") ;
导入java.util.array;
列表=数组.asList(总账拆分(“-”);
使用此代码,您无需考虑是否有2、3或10个字符串,也无需为每个新字符串添加新的if。

使用拆分方法(一次)并检查返回的数组长度:

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


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

在代码中添加一些描述,仅代码的回答通常是不可接受的。如果您像您所说的那样得到一个null指针,那么还有其他错误,您应该得到一个索引越界异常,检查getGL是否为null。
 String[] values3 = "AAAA-BBBB-CCCC".split("-");
 // values.length == 3 


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