我用'&'分割字符串。例如:
password=XXXXXXXXX&username=XXXXXXXXXXX
现在假设我的密码包含'&'然后我在这里遇到问题,密码在第一次'&'时出现。
示例:
password=disney&123&username=XXXXXXXXXXX
所以我的输出如下:
password=disney
123
username=XXXXXXXXXXX
但我希望我的输出为:
password=disney&123
username=XXXXXXXXXXX
请指导我,因为我是java的新手。 我想用'&'分割字符串只有和我的密码可以conatin'&'这取决于用户。
先谢谢, 仅限Ritesh
答案 0 :(得分:2)
更简单的解决方案是完全使用URL编码。在这里,您只使用分隔符系统,但您也应该使用编码。
因此,当您构建String时,对值进行编码,这将替换某些字符,您可以使用complet solution或只是将&
替换为您选择的值(但我不会这样做)这一点)。
然后,当你拆分时,String只包含用于分隔值的&
,解码值(重新创建原始值)。
这与向WebService发送请求完全相同,因为您使用相同的模式,这似乎更具逻辑性。
&
&
答案 1 :(得分:1)
String[] strs="password=disney&123&username=XXXXXXXXXXX".split("&username=");
strs[1]="username="+strs[1];
System.out.println(strs[0]);
System.out.println(strs[1]);
-
编辑:
//This is a slightly more generalized method
String[] strs="username=XXXXXXXXXXX&password=disney&123".split("&(?=(username|password)=)");
System.out.println(strs[0]);
System.out.println(strs[1]);
-
编辑:
//more generalized method
String[] strs="username=XXXXXXXXXXX&password=disney&123".split("&(?=([a-zA-Z0-9]+)=)");
for(String str : strs)
System.out.println(str);