如何更换|| (两个管道)来自带有|的字符串 (一)管道
我在这个标签中得到了json格式的一些图像的响应:
“xmlImageIds”:“57948916 || 57948917 || 57948918 || 57948919 || 57948920 || 57948921 || 57948 922 || 57948923 || 57948924 || 57948925 || 57948926 || 5794892”
我想要做的是使用字符串类的.split(“||”)分隔每个图像id。 然后使用此图像ID附加url并显示它。
我试过.replace("\"|\"|","\"|");
但它不适合我。请帮助。
编辑:Shabbir,我试图根据您的评论更新您的问题。 如果我没弄错,请再次编辑它。
使用
.replace("||", "|");
|
没有特别的char。
但是,如果您使用split()
或replaceAll
而不是replace()
,请注意您需要将管道符号转义为\\|
,因为这些方法采用正则表达式作为参数。
例如:
public static void main(String[] args) { String in = "\"xmlImageIds\":\"57948916||57948917||57948918||57948919||57948920||57948921||57948922||57948923||57948924||57948925||57948926||5794892\"".replace("||", "|"); String[] q = in.split("\""); String[] ids = q[3].split("\\|"); for (String id : ids) { System.out.println("http://test/" + id); } }
我想我知道你的问题是什么。 您需要分配replace()
的结果,而不仅仅是调用它。
String s = "foo||bar||baz"; s = s.replace("||", "|"); System.out.println(s);
我测试了它,只是调用s.replace("||", "|");
似乎没有修改字符串; 你必须将结果分配给s
。
编辑:Java 6规范说“ 返回一个新字符串 ,该字符串是用newChar替换此字符串中所有出现的oldChar。” (重点是我的)。
根据http://docs.oracle.com/javase/6/docs/api/java/lang/String.html,replace replace()
接受char
而不是String
。 也许你应该尝试使用replaceAll(String, String)
代替? 要么是这样,要么尝试将String( ""
)引号更改为char( ''
)引号。
编辑:我刚注意到带有CharSequence
replace()
的重载。 我还是会尝试replaceAll()
。
我不记得它是如何工作的那种方法……但你可以自己制作:
String withTwoPipes = "helloTwo||pipes"; for(int i=0; i
我认为像这样的代码应该有用...它不是一个完美的答案,但可以帮助...
String pipe="pipes||"; System.out.println("Old Pipe:::"+pipe); System.out.println("Updated Pipe:::"+pipe.replace("||", "|"));