在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查看我的编辑,了解是否可以先按空格拆分。