-1

我是编程新手,所以请多多包涵。尝试创建字数统计功能。

但是,我收到以下错误:

下面是我的代码:无法将类型“字符串”隐式转换为“字符串 []”

这是什么意思?

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

5 回答 5

1

您可以更改string[]var以使其正常工作。它需要一个string类型变量来存储结果,而不是字符串数组 - 并且 usingvar告诉编译器为您选择正确的类型,因此您不必担心它。

假设您没有将计数存储在字符串中,您可以使用Count()扩展方法:(.Length可以,但由于您正在计算字数,我认为这可能更容易理解)

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

如果您计划在某处使用此值,您可能还想在方法结束时更改voidint和值。return

private int SplitWords(string fbStatus)
{
     return fbStatus.Split(new char[] { ' ' },
     StringSplitOptions.RemoveEmptyEntries).Count();
}
于 2013-07-23T03:05:39.467 回答
0

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

也许你的意思是:

string numberOfSplitWords = fbStatus.Split(new char[] { ' ' },
    StringSplitOptions.RemoveEmptyEntries).Length.ToString();
于 2013-07-23T02:56:36.430 回答
0

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

也许你的意思是:

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

?

于 2013-07-23T02:57:16.377 回答
0

的结果

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

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

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

如果存在从to的隐式转换(隐式意味着您不必明确地说“将其转换为” ,编译器将允许您执行此操作。但是,没有这样的隐式转换。所以,编译器是告诉你。stringstring[]stringstring[]

无法将类型隐式转换stringstring[]

我不清楚你在做什么。如果你只是想要分裂的话,你就说

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

如果你只想要字数,就说

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

根据您的问题的标题,在我看来这就是您想要的。

于 2013-07-23T02:57:43.580 回答
0

此代码将为您提供一个包含单词 (a) 的数组string[]

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

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

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

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

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

由于那是 a string,因此您不能直接将其分配给 a string[]

于 2013-07-23T03:00:26.793 回答