我使用这些代码行从SQL数据库中检索数据
$username = $_POST['username'];
$selector = "SELECT * FROM client_table WHERE SalesmanID ='" . $username . "';";
$result = mysqli_query($con,$selector);
while($row = mysqli_fetch_array($result)) {
echo $row['ID'] . "/" . $row['Name'] . "/" . $row['Address'] . "/" . $row['Zip Code'] . "/" . $row['SalesmanID'];
echo "\\r\\n";
}
?>
在Java方面我做
while ((bufferedStrChunk = bufferedReader.readLine()) != null) {
stringBuilder.append(bufferedStrChunk);
}
String queryResult = stringBuilder.toString();
问题是我什么时候
String[] results=queryResult.split("\n");
字符串未拆分。有人可以帮忙吗?
答案 0 :(得分:2)
从stringBuilder
检索数据时,您没有向bufferedReader
添加任何行分隔符
stringBuilder.append(bufferedStrChunk).append(System.lineSeparator())
无论如何,如果你想获得某种集合中的所有行,那么你可以简单地使用
List<String> lines = Files.readAllLines(Paths.get("pathToFile"));
对于BufferedReader,您也可以使用(自Java 8开始)
List<String> lines = br.lines().collect(Collectors.toList());
答案 1 :(得分:1)
在PHP代码中,您使用\
转义\\
,使\
附加字符串 - 字符后跟n
- 字符 AND 在Java代码中,您将按新行char \n
进行拆分。这可能是问题的原因。
尝试使用转义\
:
String[] results=queryResult.split("\\\\n");
//EDITED: String[] results=queryResult.split("\\n"); //In comment informed that; to escape '\' we need to use four '\\\\'
这应该有效。