Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在while循环中创建子字符串_Java_Substring - Fatal编程技术网

Java 在while循环中创建子字符串

Java 在while循环中创建子字符串,java,substring,Java,Substring,我试图创建一个方法,将子字符串a字符串从一个词(labelA)到另一个词(labelB)的出现,反之亦然 如果字符串是Number2快速Number1玛瑙妖精跳Number1越过懒惰矮人Number2 我正在尝试获取标签之间的字符串以分配给子变量 所以它输出的向量在每次运行while循环时都有类似的值 temp.addElement("Number2"); temp.add("The"); 然后 然后 然后 这就是我尝试过的 private Vector cutter(String str)

我试图创建一个方法,将
子字符串
a
字符串
从一个词(labelA)到另一个词(labelB)的出现,反之亦然

如果字符串是
Number2快速Number1玛瑙妖精跳Number1越过懒惰矮人Number2

我正在尝试获取标签之间的字符串以分配给子变量

所以它输出的向量在每次运行while循环时都有类似的值

temp.addElement("Number2");
temp.add("The");
然后

然后

然后

这就是我尝试过的

 private Vector cutter(String str){
    Vector thisPlan - new Vector();
    Vector temp = new Vector();
    try{
       int i =0;
       int end = 0;
       String labelA = "Number1:";
       String labelB = "Number2:";
       String Sub = "";
       int pos = 0;
       while(i<r.length()){
         try{
             pos = str.indexOf(labelA, pos);
             Sub = str.substring(pos,str.length());
             pos++;
         }catch(Exception e){
             pos = str.indexOf)(labelB, pos);
             Sub = str.substring(pos,str.length());
              pos++;
         }
         if(!labelA.equals(labelB) || (labelA.equals(labelB) && !StringUtil.scrub(Sub).equals(""))){
          temp.addElement(labelA);
          temp.add(Sub);
         }
         if(!labelA.equals(labelB) || (labelA.equals(labelB) && !StringUtil.scrub(Sub).equals(""))){
           temp.addElement(labelB);
           temp.add(Sub);
          }
          temp = new Vector();
      } catch (Exception e){
       }
      return thisPlan;
    }
}
专用矢量切割器(字符串str){
向量thisPlan-新向量();
向量温度=新向量();
试一试{
int i=0;
int end=0;
字符串标签a=“Number1:”;
字符串labelB=“Number2:”;
字符串Sub=“”;
int pos=0;
而(i
String.split(String)
我相信它会起作用:

"The Number2 quick Number1 onyx goblin jumps Number1 over the lazy dwarf Number2 ")
    .split("Number2|Number1")
相等于

["The ", " quick ", " onyx goblin jumps ", " over the lazy dwarf ", " "]
["The ", "Number2", " quick ", "Number1", " onyx goblin jumps ",
    "Number1", " over the lazy dwarf ", "Number2", " "]
这看起来很像我相信你在寻找的东西

要保留分隔字符串的分隔符
“Number1”
“Number2”
,可以在和中使用:


你的代码有什么问题?它不工作只是捕获异常。显示你的错误日志。不幸的是,我没有它,这是另一个问题。但我正在寻找建议删除
捕获(异常e)
block then-你会得到一个很好的堆栈跟踪,告诉你到底出了什么问题。是的,你能告诉我很多吗?不客气!我正要在
私有向量切割器(String str)中添加一些
String[]
Vector
转换代码
我的答案的方法。很高兴你能亲自到达那里。:)我如何打印子字符串之前出现的标签,这将需要像数字1或数字2一样放入向量
"The Number2 quick Number1 onyx goblin jumps Number1 over the lazy dwarf Number2 ")
    .split("Number2|Number1")
["The ", " quick ", " onyx goblin jumps ", " over the lazy dwarf ", " "]
"The Number2 quick Number1 onyx goblin jumps Number1 over the lazy dwarf Number2 "
    .split("(?=Number[12])|(?<=Number[12])")
["The ", "Number2", " quick ", "Number1", " onyx goblin jumps ",
    "Number1", " over the lazy dwarf ", "Number2", " "]