【问题标题】:Getting "System.String[]" instead of actual value after splitting.拆分后获取“System.String[]”而不是实际值。
【发布时间】:2018-10-10 16:35:46
【问题描述】:

所以我有一段非常简单的代码

public static string[] config = File.ReadAllLines(Environment.CurrentDirectory.ToString() + "\\documents\\config.json");

public static void Start()
{
    Console.WriteLine(config[4]);
    Console.ReadKey();
}

这会正确显示数组中的第 5 项,即“0x00=jU0UrZBkqPXfp8MsMoILSRylevQGaUmJRnpFbfUvcGs=7lvpCgtyWl0 : crypt_wallet”。我只想要字符串的第一部分,所以“0x00=jU0UrZBkqPXfp8MsMoILSRylevQGaUmJRnpFbfUvcGs=7lvpCgtyWl0”。 当我在拆分参数中使用Console.WriteLine(config[4].split(null); 或其他任何内容时,我只会返回System.String[]

我将如何解决这个问题,以便正确显示答案?

【问题讨论】:

  • config.json -> 谷歌how to read json in c#
  • 我读到过,我不想包含图书馆。这是程序中不必要的重量。 @RandRandom
  • 你想知道还有什么是不必要的吗?编写代码来完成已经为您完成的工作(很可能以不太一致的方式)。
  • 我本来打算为图书馆争取专业人士,但意识到我并不在乎。你做你。

标签: c# arrays string split


【解决方案1】:

应该如下所示,因为您必须选择要打印的元素,因为 Split() 返回 string[]

Console.WriteLine(config[4].Split(':')[0]);

【讨论】:

    【解决方案2】:

    不确定“字符串的第一部分”是什么意思。但是你可以通过使用 .Substring() 来实现。

    如果你知道开头总是固定的长度,你可以这样做:

    config[4].Substring(0, 4);
    

    如果你知道这个值后面会跟着一个特定的字符(例如“=”:

    config[4].Substring(0, config[4].IndexOf("="));
    

    【讨论】:

    • 字符串的长度是未知的,所以我将它拆分为空(这是字符串中已知的“中断”,所以它可能更动态一点。我来的解决方案to 使用config[4].Split(':')[0] 而不是config[4].Split(':')
    • @Lv_InSaNe_vL 您意识到如果您的“第一部分”包含:,您的代码将会中断?
    • @RandRandom 是的,这就是为什么我在字符串末尾和: 之间的空白处拆分字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    • 2022-11-17
    • 1970-01-01
    • 2011-10-18
    • 2019-03-21
    • 1970-01-01
    相关资源
    最近更新 更多