C#将文件导入数组并将每个字符放入其自己的索引时出现问题

时间:2017-04-03 00:12:52

标签: arrays file import character

我在将文本文件导入数组并将每个字符放入其自己的索引时遇到问题? 这是我的代码:

$selected_services = Auth::user()->business->services()->keyBy('service_id');

问题是它只显示一些字符?现在,如果我稍微更改代码:

 class Program
{
    static void Main(string[] args)
    {
        string content = File.ReadAllText("Labyrint.txt", Encoding.UTF8);

        // Use ToCharArray to convert string to array.
        char[] array = content.ToCharArray();

        Console.WriteLine(content);
        // Loop through array.
        for (int i = 0; i < array.Length; i++)
        {
            // Get character from array.
            char letter = array[i];
            // Display each letter.
            Console.Write("Letter: " + letter);
           // Console.WriteLine(letter);
        }
    }
}

然后它显示数组中的所有字符,但是当我试图找出每个字符所在的索引时,添加&#39; i&#39;到此代码Console.Write(&#34; Letter:&#34; + letter);所以代码看起来像这样:

class Program
{
    static void Main(string[] args)
    {
        string content = File.ReadAllText("Labyrint.txt", Encoding.UTF8);

        // Use ToCharArray to convert string to array.
        char[] array = content.ToCharArray();

        Console.WriteLine(content);
        // Loop through array.
        for (int i = 0; i < array.Length; i++)
        {
            // Get character from array.
            char letter = array[i];
            // Display each letter.
            Console.Write("Letter: " + letter);
            //Console.WriteLine(letter);
        }
    }
}

结果变得疯狂,看起来像这样: Output Vindue 文本文件如下所示,我把它放在项目的调试文件夹中,所以我没有提供路径。

TextFile

1 个答案:

答案 0 :(得分:0)

我尝试了以下代码并且它似乎有用,如果仍然无法正常工作,则可能是您使用了错误的编码类型,并且该文件的编码与UTF-8不同

如果是这种情况,那么在Notepad ++等编辑器中打开文件,看看该文件的编码是什么

修改 看起来它是从第191行而不是0开始的原因是你超出了控制台的缓冲区高度,所以在我添加代码以将缓冲区高度设置为它的最大值。根据应用程序的不同,您可能希望使用较小的值。

class Program{
    static void Main(string[] args){
        //Increase Console Buffer Height
        Console.BufferHeight = Int16.MaxValue - 1;
        string content = File.ReadAllText(@"Labyrint.txt", Encoding.UTF8);

        // Use ToCharArray to convert string to array.
        char[] array = content.ToCharArray();

        // Loop through array
        for (int i =0; i<array.Length; i++) {
            string letter = arrray[i].ToString()
                .Replace("\r","\\r").Replace("\n", "\\n")
                .Replace("\t","\\t").Replace(" ","<space>");
            // Display each letter
            Console.WriteLine("Letter {0}: {1}", i, letter); 
        } 
        Console.ReadLine();
    }
}