为什么我无法逃脱问号(C#)?

时间:2014-08-28 10:16:23

标签: c#

我需要计算从文件中读取的文本中每个单词出现的次数。问题是我必须逃避一些常见的符号并且我要做到这一点。所有这些都成功删除,除了问号"?"我仍然无法理解为什么会这样。我引用了代码。再次感谢。

namespace DictionariesHashTablesAndSets
{
using System;
using System.Collections.Generic;
using System.IO;

class WordsOccurencesInText
{
    static void Main()
    {
        StreamReader reader = new StreamReader("../../text.txt");
        string textFromFile = reader.ReadToEnd();

        string[] words = SplitWords(textFromFile);

        for (int index = 0; index <= words.Length - 1; index++)
        {
            words[index] = words[index].ToLower();
        }

        IDictionary<string, int> dict = new Dictionary<string, int>();

        foreach (var word in words)
        {
            int count = 1;
            if (dict.ContainsKey(word))
            {
                count = dict[word] + 1;
            }

            dict[word] = count;
        }

        Console.WriteLine(textFromFile);

        foreach (var word in dict)
        {
            Console.WriteLine("{0} -> {1} times", word.Key, word.Value);
        }

    }

    private static string[] SplitWords(string textFromFile)
    {
        char[] separators = new char[] { '.', ',', ' ', '?', '!', ';', '-' };
        string[] words = textFromFile.Split(separators, StringSplitOptions.RemoveEmptyEntries);

        return words;
    }
}
}

输出:

just -> 1 times
some -> 1 times
random -> 3 times
text -> 11 times
over -> 1 times
here -> 1 times
and -> 1 times
more -> 1 times
this -> 3 times
is -> 2 times
the -> 2 times
? -> 1 times

文本文件示例:

  

这里有一些随机文本,TEXT,文本和更随机的随机文本文本?这是TEXT。文字,文字,文字这篇文章!这是文本吗?

1 个答案:

答案 0 :(得分:3)

控制台写了?,因为它是一个无法显示的角色。该字符位于这些部分之间的文件中:

just Some random text over Here, TEXT, text, and more random - random text Text? This is the TEXT. Text, text, text 

 THIS TEXT! Is this the text?

你在开始时看到了空间吗?它不是普通的空间,也不是第一部分的空间。但是它的ASCII值是150.(普通空间的ASCII值是32) 如果删除?将消失的这个特殊空间。

如果你想检查一下这个测试:

just Some random text over Here, TEXT, text, and more random - random text Text? This is the TEXT. Text, text, text THIS TEXT! Is this the text?