Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .分割每个字符_C#_Arrays_String_Split - Fatal编程技术网

C# .分割每个字符

C# .分割每个字符,c#,arrays,string,split,C#,Arrays,String,Split,所以我用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(','); //D

所以我用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]);
}
但是,它没有将单词分隔在逗号之间,而是将每个字符(包括逗号)分隔,并将其放入数组中。 我做错了什么

编辑

我应该提到的是,我是在这篇文章的基础上建立起来的:

编辑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;


            }
dataString=hs_get.text.Split('\n');
stringPairs=新字符串[dataString.Length][];
for(int o=0;o

谢谢大家的帮助

您不必像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();
}
private string[][]工作(string hs\u get\u text){
var lines=hs_get_text.Split('\n');
int linesLength=行。长度;
变量对=新列表(行长度);
foreach(行中的var行){
pairs.Add(line.Split('),');
}
返回pairs.ToArray();
}

这个班很有势力。如果您使用.Net,您应该使用它来避免一些头痛。

也许我遗漏了一些东西,但这对我来说很好,也许是一个更好的选择。我试着从unity答案中重新创建样本

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(','));
}
const string hs\u get\u text=“苹果、球、狗、鱼、帽子”;
var dataString=hs_get_text.Split('\n');
变量列表=新列表(dataString.Length-1);
foreach(数据字符串中的字符串s)
{
Debug.WriteLine(s);
列表.添加(s.Split(',');
}

如果您需要字符串列表成为数组,您可以在列表上调用
.ToArray()

您的代码看起来正常,但跳过了最后一行,您应该删除-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]);
    }

这是什么语言?哦,对不起,没有。这是C#。代码看起来不错-请显示您正在使用的数据。请注意不要使用<代码> o>代码>作为变量名(尤其是索引),因为它看起来像“代码> 0”/代码>代码工作-除非有一些有趣的数据。我看到一个错误,您没有遍历整个dataString数组。您应该将循环更改为for(int o=0;ohs_get_text并返回了字符串[][]数组。因此我删除了-1,但通过此代码并记录它,我得到的结果是stringPair[x][1]是“,”。我甚至使用了您的示例字符串文本而不是PHP检索文本。您使用的是.NET的哪个版本?代码返回我在PC上打印的数组。我使用的是.NET 4.0。我目前正在Unity 4中编码,谷歌快速搜索表明Unity 4相当于.NET 3.5。幸运吗?每次通过循环时dataString[o]的内容是什么样子的?我刚才有了一个突破。出于某种原因,代码(如上文原始问题中所述)现在可以工作了。我不知道为什么您的代码或其他任何代码都不起作用。
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(','));
}
    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