字符串截取的问题?java

ORC|NW|487722|01E201806-2800042|628116|2|0|||20180628171215|||ADMIN^樊翠翠|||||||||儿科急诊门诊^^1300314||||||||A|||中心药房^^1401003
TQ1|1||1&每日一次|||4.0^&1|201806281000
RXO|397F^钠钾镁钙葡萄糖注射液^^500ml/袋|1||ml||8^输液单||||||||||||||0^否||3^滴/分钟

我想根据ORC 取第n个|后面的值 java里有这样的方法吗?
比如我去ORC第4个|后面的就是628116
大神们请求帮助

public static void main(String[] args) {
// TODO Auto-generated method stub

String s="ORC|NW|487722|01E201806-2800042|628116|2|0|||20180628171215|||ADMIN^樊翠翠|||||||||儿科急诊门诊^^1300314";
System.out.print(searchstr(s,"ORC",4));

}
public static String searchstr(String str,String strcmp,int strindex){
String[] strArray=str.split("|");

String ORC = strArray.get(0);
String NW = strArray.get(1);
String 487722 = strArray.get(2);
String 01E201806-2800042 = strArray.get(3);
String 628116 = strArray.get(4);
}

}

如果这个字符串规则不变的话这样取值是可以的,完美解决望采纳

tring[] aa = "ORC|NW|487722|01E201806-2800042|628116|2|0|||20180628171215|||ADMIN^樊翠翠|||||||||儿科急诊门诊^^1300314||||||||A|||中心药房^^1401003".split("|");
string aaa=aa[n]//i为你要取的个数

public class test {

public test() {
    // TODO Auto-generated constructor stub
}

public static void main(String[] args) {
    // TODO Auto-generated method stub

    String s="ORC|NW|487722|01E201806-2800042|628116|2|0|||20180628171215|||ADMIN^樊翠翠|||||||||儿科急诊门诊^^1300314";
    System.out.print(searchstr(s,"ORC",4));

}
public static String searchstr(String str,String strcmp,int strindex)
{
    String[] strArray=str.split("\\|");
    int i=0;
    for(i=0;i<strArray.length;i++)
    {
        if(strArray[i].equals(strcmp)) 
        {
        return strArray[i+strindex];
        }
    }
    return "原字符串不符合条件";
}

}

package myhello;

public class test {

public test() {
    // TODO Auto-generated constructor stub
}

public static void main(String[] args) {
    // TODO Auto-generated method stub

    String s="ORC|NW|487722|01E201806-2800042|628116|2|0|||20180628171215|||ADMIN^樊翠翠|||||||||儿科急诊门诊^^1300314";
    System.out.print(searchstr(s,"ORC",4));

}
public static String searchstr(String str,String strcmp,int strindex)
{
    String[] strArray=str.split("\\|");
    int i=0;
    for(i=0;i<strArray.length;i++)
    {
        if(strArray[i].equals(strcmp)) 
        {
            if(i+strindex<strArray.length)
            {
                return strArray[i+strindex];
            }
            else
            {
                return "查找到字符串,但是没有符合该位置的结果";
            }
        }
    }
    return "原字符串不符合条件";
}

}

public class Test {
public static void main(String[] args) {
String s="ORC|NW|487722|01E201806-2800042|628116|2|0|||20180628171215|||ADMIN^樊翠翠|||||||||儿科急诊门诊^^1300314";
System.out.print(searchstr(s,"ADMIN",9));

}
/**
 * 
 * @param str 要查找的字符串
 * @param strcmp 开始查找的字符串,比如从ORC开始,该字符串为ORC
 * @param strindex 查找的索引数,该处为4
 * @return 查找结果字符串
 */

public static String searchstr(String str,String strcmp,int strindex){
String subString = str.substring(str.indexOf(strcmp));
String[] strArray=subString.split("\|");
if(strArray.length>=strindex) {
return strArray[strindex];
}else {
return "要查找的字符串不存在";
}
}
}

public static void main(String[] args) {
// TODO Auto-generated method stub

String s="ORC|NW|487722|01E201806-2800042|628116|2|0|||20180628171215|||ADMIN^樊翠翠|||||||||儿科急诊门诊^^1300314";
System.out.print(searchstr(s,"ORC",4));

}
public static String searchstr(String str,String strcmp,int strindex)
{
String[] strArray=str.split("\|");
int i=0;
for(i=0;i<strArray.length;i++)
{
if(strArray[i].equals(strcmp))
{
return strArray[i+strindex];
}
}
return "原字符串不符合条件";
}

使用String库中的split函数,根据|拆成数组,根据索引下标-1的方式就可以找到了