在java中解析起始相同但结尾不同的字符串

在java中解析起始相同但结尾不同的字符串,java,parsing,text,Java,Parsing,Text,我有像“abc/123/456”这样的字符串,我想把它分成两个Sting:“abc 123”和“abc 456” 我试过: String[] str = MESSAGE.split("/") 但没有提供要求的结果。任何人都可以和我分享一下如何执行它的想法吗?您在决定拆分它时做得很好,之后您应该将拆分数组的第一个元素与所有其他元素合并,以实现您想要的效果 这里有一些代码让它更清晰 public class main { public static void main(String[] a

我有像
“abc/123/456”
这样的字符串,我想把它分成两个Sting:
“abc 123”
“abc 456”

我试过:

String[] str = MESSAGE.split("/") 

但没有提供要求的结果。任何人都可以和我分享一下如何执行它的想法吗?

您在决定拆分它时做得很好,之后您应该将拆分数组的第一个元素与所有其他元素合并,以实现您想要的效果

这里有一些代码让它更清晰

public class main {
   public static void main(String[] args) {
       String MESSAGE = "abc /123 /456";
       String[] str = MESSAGE.split("/") ;
       String[] str2 = new String[str.length-1];

       System.out.println(str[0]);

       for ( int i=1 ; i<str.length ; i++) {
           str2[i-1] = str[0]+str[i];
       }

       for ( int i=0 ; i<str2.length ; i++) {
           System.out.println(str2[i]);
       }

   }
}
公共类主{
公共静态void main(字符串[]args){
字符串消息=“abc/123/456”;
字符串[]str=MESSAGE.split(“/”);
字符串[]str2=新字符串[str.length-1];
System.out.println(str[0]);

对于(int i=1;i您在决定拆分它时做得很好,之后您应该将拆分数组的第一个元素与所有其他元素合并,以实现您想要的结果

这里有一些代码让它更清晰

public class main {
   public static void main(String[] args) {
       String MESSAGE = "abc /123 /456";
       String[] str = MESSAGE.split("/") ;
       String[] str2 = new String[str.length-1];

       System.out.println(str[0]);

       for ( int i=1 ; i<str.length ; i++) {
           str2[i-1] = str[0]+str[i];
       }

       for ( int i=0 ; i<str2.length ; i++) {
           System.out.println(str2[i]);
       }

   }
}
公共类主{
公共静态void main(字符串[]args){
字符串消息=“abc/123/456”;
字符串[]str=MESSAGE.split(“/”);
字符串[]str2=新字符串[str.length-1];
System.out.println(str[0]);

对于(int i=1;i,只需按您需要的任何方式将各部分粘在一起,如下所示:

String[] str = MESSAGE.split(" /");
String s1 = str[0] + " " + str[1];
String s2 = str[0] + " " + str[2];
    String s = "abc 123/ 456/";

String[] splitBySpace = s.split(" ");
String prefix = splitBySpace[0];

String[] partsOfS = new String[splitBySpace.length - 1];

for (int i = 1; i < splitBySpace.length; i++) {
    partsOfS[i - 1] = splitBySpace[i].replace("/", "");
}

for (int i = 0; i < partsOfS.length; i++) {
    System.out.println(prefix + " " + partsOfS[i]);
}

还请注意,最好使用as模式拆分字符串,即在斜杠前留出一个空格。

只需按您需要的任何方式将碎片粘在一起,如下所示:

String[] str = MESSAGE.split(" /");
String s1 = str[0] + " " + str[1];
String s2 = str[0] + " " + str[2];
    String s = "abc 123/ 456/";

String[] splitBySpace = s.split(" ");
String prefix = splitBySpace[0];

String[] partsOfS = new String[splitBySpace.length - 1];

for (int i = 1; i < splitBySpace.length; i++) {
    partsOfS[i - 1] = splitBySpace[i].replace("/", "");
}

for (int i = 0; i < partsOfS.length; i++) {
    System.out.println(prefix + " " + partsOfS[i]);
}

还请注意,最好使用as模式拆分字符串,即在斜杠前加一个空格。

拆分
字符串后,需要添加一点逻辑。
我会这样做:

字符串s=“abc/123/456”; 字符串[]partsOfS=s.split(“/”); 字符串前缀=partsOfS[0]

for (int i = 1; i < partsOfS.length; i++) {
    System.out.println(prefix + partsOfS[i]);
}

关于性能和编程风格,可能有更好的解决方案,但这是使用注释中的示例
String

您需要在拆分
字符串后添加一些逻辑。
我会这样做:

字符串s=“abc/123/456”; 字符串[]partsOfS=s.split(“/”); 字符串前缀=partsOfS[0]

for (int i = 1; i < partsOfS.length; i++) {
    System.out.println(prefix + partsOfS[i]);
}

关于性能和编程风格,可能有更好的解决方案,但这与您的注释中的示例
String
有关。

您可以向我们展示更多的代码吗?我想看看您是如何初始化
消息
字符串的“但是没有提供所需的结果。请更新您的问题以显示结果。您可以向我们展示更多的代码吗?我想看看您如何初始化
消息
字符串。”“但没有提供所需的结果。请更新您的问题以显示结果是什么。在方法中包含此项将使其更可用。在方法中包含此项将使其更可用。但是,如果字符串类似于字符串s=”abc 123/456/“,您将如何解析该字符串?”@拉蒂博沙霍夫:不客气……接受它,也许投票赞成;-)@RatiborShakhov在这种情况下,您必须将其拆分两次!这是一项更复杂的任务。也许我可以很快对我的问题进行编辑。@RatiborShakhov请查看我的编辑,以了解是否可以先按空格拆分。但是,如果字符串类似于字符串s=“abc 123/456/”,您将如何解析该字符串@RatiborShakhov不客气……接受它,也许投票表决;-)@RatiborShakhov如果那样的话,你将不得不将它们拆分两次!这是一项更复杂的任务。也许我可以很快对我的问题进行编辑。@RatiborShakhov查看我的编辑,了解是否可以先按空格拆分。