如何查找数组索引是否存在?

时间:2016-12-14 13:56:01

标签: java

基本上我需要检查Unexpected number of columns in input record at line 14. Expected 14 columns, processed 6 columns out of 6. 是否包含2个索引。 基于我的谷歌搜索,我发现我可以使用String || part[0].length() > 0但是没有任何事情可以帮助我。

我的代码:

part[0] != null

但是String[] parts = datareceived.split("&"); if(!(parts[0].length()>0) && parts[0] == null){ out.print("String is null"); return; } if(!(parts[1].length()>0) && parts[1] == null){ out.print("String is null"); return; } 我在这里得到的例外情况是:

  

java.lang.ArrayIndexOutOfBoundsException:1       at pack.reg.pack.serv.doPost(serv.java:10)       在javax.servlet.http.HttpServlet.service(HttpServlet.java:648)       在javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

提前致谢!

3 个答案:

答案 0 :(得分:1)

  

基本上我需要检查String是否包含2个索引

如果您使用的是split(),则会返回一个数组,您可以使用.length来检查返回的令牌的大小:

if(parts.length >= 2)
  

但是,如果第二个索引是空的那就不行了,对吗?

如果您害怕获得空字符串,可以先trim()字符串:

String[] parts = datareceived.trim().split("&");

答案 1 :(得分:0)

这意味着拆分返回一个字符串数组,其大小为1.这就是为什么你得到java.lang.ArrayIndexOutOfBoundsException 如果要检查数组大小是否为2,可以执行以下操作

  part.length >= 2
    // write your logic here

答案 2 :(得分:0)

如果您在致电ArrayIndexOutOfBoundsException时获得parts[1],但在致电parts[0]时未获得parts.length == 1,我们可以得出结论datareceived。因此,由于索引从0开始,索引0包含整个字符串,并且拆分数组(和up)中的索引1不存在。

- >发现问题:您的&不包含datareceived,因此无法在任何地方拆分。 解决方案:希望我能正确理解你的问题(检查字符串String datareceived = "01234"; int index1 = 2; int index2 = 5; if (datareceived.length() > index1) { //the string has a value at index1. With the given example, this if-query would be true. } if (datareceived.length() > index2) { //the string has a value at index2. With the given example, this if-query would be false. } 是否包含某些索引的值),我写了一段应该有用的代码。

.split

使用String.split("expression")时的旁注: 我发现,当使用.时,"表达式" part可以包含正则表达式(正则表达式)。因此,如果您使用任何有效的正则表达式符号(例如$.),它将无效(至少,不一定)。例如,在正则表达式中,String s = "a,b"; String[] strings = s.split(","); for (String str : strings) { System.out.println(str + "_"); } //will print out "a_b_" 表示"任何字符",它基本上会为您提供一个空数组。
(注意:我没有正则表达式专家,但"&"似乎不是一个有效的正则表达式)

示例:

String s = "a.b";
String[] strings = s.split(".");
//"strings" is an empty array, since "a", ".", and "b" are "any character".

示例(不按预期工作):

.split(".")

解决方案: 而不是.split("\\."),请使用<div class="slider-box"> <h5>Entfernung</h5> <ion-slider type="double" grid="true" min="0" max="800" step="50" from="{{ distance.from }}" to="{{ distance.to }}" postfix="Meter" disable="false"> </ion-slider> </div>