我有一个Java代码,用于从Minecraft服务器获取服务器信息。这将返回按§分割的数据。在eclipse中,当作为应用程序运行时,代码工作正常。问题是当我把它带到Android时。我已经对此做了一些研究,但未能找到有效的解决方案。 (尝试过Pattern.quote(“§”))这是我正在运行的一个例子:
String input = "Look like this§0§25";
String[] data = input.split("§");
预期的数据是一个3长的String [],其值为“看起来像这样”,“0”和“25”。这就是eclipse中发生的事情。在android中,我得到一个长度为1的String [],其值为“看起来像这个§§25”。有谁知道这是android的问题还是我做错了什么?
答案 0 :(得分:1)
这显然是编码问题。我直接从你的问题中复制了字符串并粘贴在Android Studio中。然后,运行以下代码段:
String input = "Look like this§0§25";
String[] data = input.split("§");
for (int i = 0; i < data.length; i++)
Log.v("data[" + i + "] ->", data[i]);
输出是你问的:
V/data[0] ->﹕ Look like this
V/data[1] ->﹕ 0
V/data[2] ->﹕ 25
或者,您可以按如下方式使用StringTokenizer:
StringTokenizer tokens = new StringTokenizer(input, "§");
String nextToken = tokens.nextToken();
但是,如果您没有正确匹配字符代码,则两种方法都不起作用。