C#字数统计功能

时间:2013-07-23 02:54:40

标签: c#

我是编程新手所以请耐心等待。 试图创建一个字数统计功能。

但是,我收到以下错误:

以下是我的代码:无法将类型'string'隐式转换为'string []'

这是什么意思?

    private void SplitWords(string fbStatus)
    {
         string[] splitWords = fbStatus.Split(new char[] { ' ' },   
         StringSplitOptions.RemoveEmptyEntries).Length.ToString();
    }

5 个答案:

答案 0 :(得分:1)

您可以将string[]更改为var以使其生效。它需要string类型变量来存储结果,而不是字符串数组 - 并且使用var告诉编译器为您选择正确的类型,这样您就不必担心它了。 / p>

假设您没有停留在字符串中存储计数,您可以使用Count()扩展方法:.Length也可以使用,但是因为你正在做一个字我认为这可能更容易理解)

private void SplitWords(string fbStatus)
{
     int splitWords = fbStatus.Split(new char[] { ' ' },
     StringSplitOptions.RemoveEmptyEntries).Count();
}

如果您计划在某处使用此值,则可能还需要将void更改为int并将return更改为方法末尾的值。

private int SplitWords(string fbStatus)
{
     return fbStatus.Split(new char[] { ' ' },
     StringSplitOptions.RemoveEmptyEntries).Count();
}

答案 1 :(得分:0)

您正尝试将ToString()(a System.String)的结果分配给string[]类型的变量。简单地说,编译器不知道如何将string转换为string[]并且正在抱怨。

也许你的意思是:

string numberOfSplitWords = fbStatus.Split(new char[] { ' ' },
    StringSplitOptions.RemoveEmptyEntries).Length.ToString();

答案 2 :(得分:0)

您要求的是数组长度的字符串化版本(即string),但您尝试将其存储在string[]中。类型不匹配,因此错误。

也许你的意思是:

string splitWords = fbStatus
    .Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
    .Length
    .ToString();

答案 3 :(得分:0)

的结果
fbStatus.Split(
    new char[] { ' ' },
    StringSplitOptions.RemoveEmptyEntries
)
.Length
.ToString();

string的一个实例,因为Object.ToString始终返回string。但是,您试图将结果分配给string[]因为您说

string[] splitWords = fbStatus.Split(
                          new char[] { ' ' },
                          StringSplitOptions.RemoveEmptyEntries
                      )
                      .Length
                      .ToString();

如果从stringstring[]进行隐式转换,编译器将允许您执行此操作(隐式意味着您不要'必须显式地说“将此string转换为string[]”。但是,没有这样的隐式转换。所以,编译器告诉你。

  

无法隐式将string类型转换为string[]

我不清楚你在做什么。如果您只想要分割中的单词,只需说出

即可
string[] splitWords = fbStatus.Split(
                          new char[] { ' ' },
                          StringSplitOptions.RemoveEmptyEntries
                      );

如果您只想要单词数量,请说

int count = fbStatus.Split(
                 new char[] { ' ' },
                 StringSplitOptions.RemoveEmptyEntries
            )
            .Length;

根据您问题的标题,我认为这就是您想要的。

答案 4 :(得分:0)

此代码将为您提供一个包含单词(string[]):

的数组
fbStatus.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)

这将为您提供单词数(int):

fbStatus.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Length

这将为您提供转换为字符串的单词数(string):

fbStatus.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Length.ToString()

由于这是string,您无法直接将其分配给string[]