将Java字符串转换为数组
这是一个奇怪的问题。这里是我的代码将Java字符串转换为数组
String reply = listen.executeUrl("http://localhost:8080/JavaBridge/reply.php);
executeUrl返回字符串对象无论由reply.php文件返回什么。 现在出现这个问题。在reply.php中,我返回一个PHP数组,并且答复是一个String。
当我做
System.out.println("Reply = "+reply);
我得到
Reply = array(2) { [0]=> string(14) "Dushyant Arora" [1]=> string(19
) "@dushyantarora13 hi"}
但答复仍然是一个字符串。我如何将其转换为字符串数组或数组。
没有什么奇怪它是在所有。你已经宣布String reply
,所以当然这是一个字符串。将String
拆分为String[]
的标准方法是使用String.split
,但我会认真考虑更改回复字符串的格式,而不是试图找出当前格式的正则表达式,因为它不是那么友好,因为它是。
您可能需要更改reply.php的行为,并返回一个字符串而不是数组。
也许像
// ...
return implode(" ", $your_reply_array) ;
您可能想尝试在reply.php中返回JSON对象,然后使用JSON库将其导入到Java中。
reply.php:
<?
...
echo json_encode($yourArray);
在你的Java代码:
...
JSONArray reply = new JSONArray(listen.executeUrl("http://localhost:8080/JavaBridge/reply.php"));
JSON的+1!两种语言都支持库中的标准格式! – polygenelubricants 2010-06-08 14:52:55
解析与Java与PHP数组是不干净的解决方案,但我永远无法抗拒好的正则表达式问题。
public static void main(String[] args) {
Pattern p = Pattern.compile("\\[\\d+\\]=> string\\(\\d+\\) \"([^\"]*)\"");
String input = " array(2) { [0]=> string(14) \"Dushyant Arora\" [1]=> string(19" +
") \"@dushyantarora13 hi\"}";
ArrayList<String> list = new ArrayList<String>();
Matcher m = p.matcher(input);
while (m.find()) {
list.add(m.group(1));
}
System.out.println(list);
}
[Dushyant Arora, @dushyantarora13 hi]
我需要在Java端阵列。我如何获得? – Bruce 2010-06-08 14:48:48
忘记了,就像thetaiko说JSON是你需要的:) – 2010-06-08 14:56:00