Java如何循环数组并使用Split

场景: 当写方法时遇到1个参数有3个值, 该参数类型为数组。    例如:  aaa|bbb|ccc  .  而且需要循环打印,这个时候我们就需要用数组循环输出的方法。

一:feature 示例

    When I click on menu 时间管理>休假结余>休假结余设立 from HCM page
    And I advance search staff no 0006
    Then I select leaveCode for NAL|SL2|OL|

二: steps 示例:

@Then("^I select leaveCode for (.+)$")
    public void i_select_leaveCode_for(String leaveCode) throws Throwable {
        vp.selectLeaveCodeFor(leaveCode);
    }

三:  Page 示例:

 /**
      * 休假结余设立菜单,筛选多个休假类型。
      * @param leaveCode
     * @throws Exception
      */
     public void selectLeaveCodeFor(String leaveCode) throws Exception {
         waitFor(By.xpath("//span[@id=‘divLeaveCodesShowWindow‘]")).click();
         String[] array = leaveCode.split("\\|");
         for (int i = 0; i < array.length; i++) {
            String xpath = "//tr[./td[text()=‘"+ array[i] +"‘]]/td[1]/input";
            waitFor(By.xpath(xpath)).click();
        }
         waitLoading();
         waitFor(By.xpath("//input[@id=‘confirmdivLeaveCodesSelection‘][@value=‘确认‘]")).click();
         waitFor(By.xpath("//a[@id=‘btnSearch‘]/i")).click();
         waitLoading();
     }

场景图:

效果图:

四:Split 常见使用方法

在java.lang包中有String.split()方法,返回是一个数组

我在应用中用到一些,给大家总结一下,仅供大家参考:

1、如果用“.”作为分隔的话,必须是如下写法,String.split("\\."),这样才能正确的分隔开,不能用String.split(".");

2、如果用“|”作为分隔的话,必须是如下写法,String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");

“.”和“|”都是转义字符,必须得加"\\";

3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如,“acount=? and uu =? or n=?”,把三个都分隔出来,可以用String.split("and|or");

使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。

我们看jdk doc中说明

public String[] split(String regex)

Splits this string around matches of the given regular expression.

参数regex是一个 regular-expression的匹配模式而不是一个简单的String,他对一些特殊的字符可能会出现你预想不到的结果,比如测试下面的代码用竖线 | 分隔字符串,你将得不到预期的结果

例如情况A: aaa|bbb|ccc

    String[] aa = "aaa|bbb|ccc".split("\\|"); 这样才能得到正确的结果

    for (int i = 0 ; i <aa.length ; i++ ) {

      System.out.println("--"+aa[i]); 

    } 

例如B: aaa*bbb*ccc

    String[] aa = "aaa|bbb|ccc".split("\\*"); 这样才能得到正确的结果    

    for (int i = 0 ; i <aa.length ; i++ ) {

      System.out.println("--"+aa[i]); 

    }  

原文地址:https://www.cnblogs.com/Shanghai-vame/p/8232833.html

时间: 2024-10-07 04:05:50

Java如何循环数组并使用Split的相关文章

JAVA实现数组队列,循环数组队列,链式队列

/** * 文件名:QueueText.java * 时间:2014年10月22日下午9:05:13 * 作者:修维康 */ package chapter3; /** * 类名:ArrayQueue * 说明:队列的数组实现 */ class ArrayQueue<AnyType>{ private static final int DEFAULT_CAPACITY = 10; private int front;//队头 private int rear;//队尾 private int

新年在家学java之基础篇--循环&amp;数组

因为“野味肺炎”的肆虐,过年被迫宅家只能吃了睡.睡了吃.这么下次只能长膘脑子空空,不如趁此机会重新学习java基础,为日后做铺垫~ 循环结构: 几种循环:for(::),while(){},do{}while() switch的break,如果不加,会从当前匹配的开始输出一直到最后输出的 break 用在for 也能跳出循环,只能终止当前所在的for循环 continue 结束当前这次循环 return 跟break一样可以终止循环,但是return是结束整个方法,不管有多少层循环 break和

JAVA for循环

java for循环就是,对于某些操作,人为地控制循环次数.最简单的,比如打印数字. 举例: 遍历数组 1 2 3 4 int[] a = new int[]{1,2,3,4,5,6,7,8,9,10,11,12};      for(int iloop : a){      System.out.println(iloop); } 2.while结构循环为当型循环(when type loop),一般用于不知道循环次数的情况.维持循环的是一个条件表达式,条件成立执行循环体,条件不成立退出循环.

在Java中判断数组中包含某个元素的几种方式的比较

闲来无事,将java中判断数组中包含某个元素的几种方式的速度进行对比,直接上代码 talk is cheap, show you the code package test.contain.lishaojie; import java.util.Arrays;import java.util.HashSet;import java.util.Set; public class TestContain { /** * @param args */ public static void main(S

【Java学习笔记之八】java二维数组及其多维数组的内存应用拓展延伸

多维数组声明 数据类型[][] 数组名称; 数据类型[] 数组名称[]; 数据类型数组名称[][]; 以上三种语法在声明二维数组时的功能是等价的.同理,声明三维数组时需要三对中括号,中括号的位置可以在数据类型的后面,也可以在数组名称的后面,其它的依次类推. 例如: int[][] map; char c[][]; 和一维数组一样,数组声明以后在内存中没有分配具体的存储空间,也没有设定数组的长度.  -------------------------------------------------

Android笔记:java 中的数组

在与嵌入式设备通讯的过程中使用的socket通讯 获取的字节流,通常转换为字节数组,需要根据协议将字节数组拆分.对于有规律的重复拆分可以使用,由于java中不能像c中直接进行内存操作例如使用struct 内存拷贝可以直接实现,这里考虑的是借用数组拷贝的方式来实现. java数组复制参考 引自百度空间 同时参考 数组拷贝之java.lang.System.arraycopy和java.util.Arrays.copyOf方法 java数组复制的4种方式,java数组拷贝问题 JAVA数组的复制是引

Java基础---使用循环操作Java中的数组(三十一)

使用循环操作 Java 中的数组 实际开发中我们经常使用循环控制数组成员的操作.如:  运行结果:  其中,  用于获取数组的长度 需要注意的"小毛病": 1. 数组下标从 0 开始.因此 scores[3] ,表示数组中的第 4 个元素,而并非第 3 个元素 2. 数组下标的范围是 0 至 数组长度-1 ,如果越界访问,就会报错.如: 运行时会报如下错误: 上面错误信息的意思是数组下标超过范围,即数组访问越界.在上面的代码中创建一个长度为 2 的数组,因此数组下标范围是 0 到 1

在java中使用数组进行模拟加密

某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的. 加密规则是每位数字都加上5,然后再用除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换. 编写一个程序,用于接收一个四位的整数,并且打印输出加密后的数. 这道题原本没有要求必须使用数组,所以我最先是使用一种翻译题目的方法完成这道题的,代码如下: public static void main(String[] args) { System.out.println("请输入一个4位数字:"); Sc

Java中的数组和方法

3.1 数组的定义和使用 数组(Array)是用来存储一组相同数据类型数据的集合.数组中的每个数据称为一个元素(element),数组可以分为一维数组,二维数组和多维数组.我们 主要讲解一维数组和二维数组. 3.1.1一维数组的声明数组变量 Java中的数组必须先声明然后再使用,Java中声明数组的方式如下: datatype[] arrayRefVar; 或者 datatype arrayRefVar[]; 例如: double[] array; 或者 double array[]; 说明:我