String.split()方法 - 返回的String数组中的标记顺序

时间:2015-01-28 07:01:15

标签: java arrays string split string-split

我正在开发一个应用程序,我必须处理自定义变量 aVar -

String aVar = price/barcode/area1/true  // varName/varType/varScope/tracable

可能有一些其他属性被添加到 aVar 由('/')分隔。 要获得varName, varType, varScope等,我必须执行以下操作,请参阅以下代码 -

      String[] token = aVar.split("/");  

      String varName = token[0];
      String varType = token[1];
      String varScope = token[2];
      String traceable = token[3];

在这里,您可以看到varName取自token[0]pricevarType取自token[1],即“条形码”,依此类推。在这里我假设 - 在分割varName之后总是在令牌[0]中,varType总是在令牌[1]中,依此类推。 现在我的问题是 - String方法返回的split()数组是否始终按照它们出现的顺序包含String标记(价格 - >条形码 - &gt ; AREA1 - >真)?

我已经用一些输入测试了几次并发现订单保持不变。但我不确定非常长字符串始终是否为真。

4 个答案:

答案 0 :(得分:4)

假设您实际上正在调用String.split(String),该方法的文档包括:

  

此方法的作用就像通过使用给定表达式和limit参数为零调用双参数split方法一样。因此,尾随空字符串不包含在结果数组中。

该方法的文档包括:

  

此方法返回的数组包含此字符串的每个子字符串,该字符串由与给定表达式匹配的另一个子字符串终止,或者由字符串的结尾终止。 数组中的子串按它们在此字符串中出现的顺序排列。如果表达式与输入的任何部分都不匹配,则生成的数组只有一个元素,即此字符串。

(强调我的。)

所以是的,他们将按顺序归还,保证。

答案 1 :(得分:2)

  

split()方法返回的String数组是否始终按照它们出现的顺序包含String标记(price - > barcode - > area1 - > true)?

总之 - 是的。 String.split维护输入字符串的顺序。

答案 2 :(得分:2)

正如您在javadoc中看到的那样,结果有一个订单:

  

数组中的子串按它们出现的顺序排列   这个字符串

答案 3 :(得分:1)

根据javadoc

The substrings in the array are in the order in which they occur in this string.

注意链接中的The substrings in the array are in the order in which they occur in this string.行。

相关问题