所以我使用C#代码分隔字符串行,然后使用逗号进一步分隔它们。 我正在使用这两个来分开:
dataString = hs_get.text.Split('\n');
stringPairs = new string[dataString.Length][];
for (int o = 0; o < dataString.Length - 1; o++)
{
Debug.Log (o);
stringPairs[o] = dataString[o].Split(',');
//Debug.Log (dataString[o][0] + " --- " + dataString[o][2]);
}
这是提供此字符串的PHP代码:
PHP
// Send variables for the MySQL database class.
$database = mysql_connect('X', 'X', 'X') or die('Could not connect: ' . mysql_error());
mysql_select_db('openfire_scores') or die('Could not select database');
$query = "SELECT * FROM `scores` ORDER by `score` DESC LIMIT 5";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
$num_results = mysql_num_rows($result);
for($i = 0; $i < $num_results; $i++)
{
$row = mysql_fetch_array($result); // Automatically advances one row after fetching
echo $row['id'] . "," . $row['name'] . "," . $row['score'] . "\n";
}
>
这是正在使用的表格:
id | name | score |
1 | Player 1 | 5 |
2 | Player 2 | 5 |
3 | Player 3 | 7 |
但是它不是分隔逗号之间的单词,而是分隔包含逗号的每个单个字符并将其放入数组中。 我做错了什么?
修改
我应该提一下这篇帖子的内容:http://answers.unity3d.com/questions/16225/how-can-i-read-data-from-a-text-file-putting-a-lar.html
修改2
所以今天我有了突破。这是我现在使用的代码。我仍然不确定为什么以前的代码不起作用,但这个代码确实有效。
dataString = hs_get.text.Split('\n');
stringPairs = new string[dataString.Length][];
for (int o = 0; o < dataString.Length; o++)
{
string[] trial = dataString[o].Split(',');
stringPairs[o] = trial;
}
感谢所有帮助人员!
答案 0 :(得分:0)
您不必镜像PHP代码的方式。
你可以这样写:
private string[][] Work(string hs_get_text) {
var lines = hs_get_text.Split('\n');
int linesLength = lines.Length;
var pairs = new List<string[]>(linesLength);
foreach (var line in lines) {
pairs.Add(line.Split(','));
}
return pairs.ToArray();
}
List类非常强大。如果你在.Net,你应该用它来节省一些麻烦。
答案 1 :(得分:0)
也许我错过了一些东西,但这对我来说很好,也许是一个更好的选择。我尝试从统一答案中重新创建样本。
const string hs_get_text = "apple,ball\ncar,dog\negg,fish\ngoat,hat";
var dataString = hs_get_text.Split('\n');
var list = new List<string[]>(dataString.Length - 1);
foreach (string s in dataString)
{
Debug.WriteLine(s);
list.Add(s.Split(','));
}
如果您需要将字符串列表作为数组,则只需在列表中调用.ToArray()
即可。
答案 2 :(得分:0)
您的代码似乎有效但跳过最后一行,除非您打算跳过最后一行,否则应该删除-1。 这是一个例子:
string text = "1,Player 1,5\n2,Player 2,5\n3,Player 3,7";
string [] dataString = text.Split('\n');
string [][] stringPairs = new string[dataString.Length][];
for (int o = 0; o < dataString.Length; o++)
{
//Debug.Log(o);
stringPairs[o] = dataString[o].Split(',');
//Debug.Log (dataString[o][0] + " --- " + dataString[o][2]);
}
数组如下所示:
stringPair[0]
[0]1
[1]Player 1
[2]5
stringPair[1]
[0]2
[1]Player 2
[2]5
stringPair[2]
[0]3
[1]Player 3
[2]7