【问题标题】:String Splitting another string字符串拆分另一个字符串
【发布时间】:2017-11-27 21:33:34
【问题描述】:

我以前用过Splits,但是这个因为某种原因有点不同,我不知道为什么......

代码:

string responceuptime = scripting.ReadUntilPrompt();
string[] suptime = responceuptime.Split('s');
UpTime.Text = suptime;

错误:

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

【问题讨论】:

  • 好吧,UpTime.Text 显然需要一个正常的string,而不是一个数组(正如错误告诉你的那样) - 不清楚你的问题是什么
  • 我想UpTime.Text 是一个 string 属性,对吧?当您将字符串的 array 分配给字符串属性时会发生什么?为什么你会认为这会奏效?

标签: c#


【解决方案1】:

这是非常基本的事情,很容易从错误消息中找出实际上出了什么问题。

顺便说一句,下面这行是罪魁祸首:

UpTime.Text = suptime;

因为suptime 是string[] 类型,它是数组,而Text 属性是String 类型。为类型分配引用和从类型分配引用时应该相同,否则我们将看到您刚刚遇到的此错误消息。

从上面的代码行中不清楚您要在这里实现什么,但是您需要将单个 String 对象分配给 Text,您不能将数组或集合分配给单个 String 对象。

希望对你有帮助。

【讨论】:

    【解决方案2】:

    您的变量 suptime 是一个 string[] - 一个字符串数组。虽然我不知道 Uptime.Text 是什么,但我猜它正在寻找单个字符串,这就是为什么你会收到编译器错误。

    如果你想从数组中取出第一个字符串,那么你可以这样设置:

    UpTime.Text = suptime[0];
    

    【讨论】:

    • 漂亮而简单的修复。你是对的,它正在寻找一个字符串,我把它隔开。我是 C# 菜鸟!计时器完成后,我将标记为已回答。感谢您的帮助!
    【解决方案3】:

    调用String.Split 的输出是一个字符串数组(String[])。您的代码在这里所做的是尝试将 String[] 分配给 String 变量,因此应用程序抛出异常。

    因此,您必须在数组中识别您要查找的值并选择指向它的索引(从0 到suptime.Length - 1)。例如:

    UpTime.Text = suptime[0]; // first value of the array
    UpTime.Text = suptime[2]; // third value of the array
    UpTime.Text = suptime[suptime.Length - 1]; // last value of the array
    

    如果你的拆分结果是:

    {"A" "Z" "11:57"}
    

    如果你想让你的UpTime.Text 填充一些看起来像时间值的东西,很明显你必须选择第三个值。

    【讨论】:

      猜你喜欢
      • 2020-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多