【问题标题】:Split a string into an array c# [duplicate]将字符串拆分为数组c# [重复]
【发布时间】:2014-08-02 01:00:18
【问题描述】:

我在 C# 中有一个字符串。一开始是空白的,但最终会变成这样的

public string info12 = "0, 50, 120, 10";

你们中的一个人可能在想,嗯?不是整数数组吗?嗯,暂时还是要留字符串,一定是字符串。

如何将此字符串转换为字符串数组(变量 info13),以便最终将其引用到更多变量中。

info 14 = info13[0];
info 15 = info13[1];

请注意:这不是重复的问题。如果您阅读全文,我清楚地表明我有一个字符串数组而不是整数。

【问题讨论】:

  • 可以简单的调用.Split('?,')方法,很简单!

标签: c# arrays string


【解决方案1】:

这里有几个选项:

1. String.Split with char 和 String.Trim

使用string.Split,然后修剪结果以删除多余的空格。

public string[] info13 = info12.Split(',').Select(str => str.Trim()).ToArray();

记住Select需要using System.Linq;

2. String.Split with char array

不需要修剪,虽然这种方法不是我最喜欢的

public string[] info13 = info12.Split(new string[] { ", " }, StringSplitOptions.None);

3. 正则表达式

public string[] info13 = Regex.Split(info12, ", ");

这需要using System.Text.RegularExpressions;

编辑:因为您不再需要担心空格,您可以简单地这样做:

public string[] info13 = info12.Split(',');

这将返回拆分项的字符串数组。

【讨论】:

  • 我的错,不应该有任何空格。但我确实收到此错误,字段初始化程序无法引用非静态字段、方法或属性 gui.info12
  • 您不能从静态方法访问非静态的东西。尝试将 info12 设为静态,前提是它们只是其中的一个实例。
  • 它不是静态的。该脚本将变量 info 12 更改为脚本的开头。
  • static 不代表const,还是可以改的。您正在尝试从静态方法引用非静态对象。
  • 我将 info 12 更改为静态字符串。现在它说 System.Array 不包含“选择”的定义,并且没有扩展方法“选择”接受第一个参数。
猜你喜欢
  • 1970-01-01
  • 2013-08-19
  • 2012-01-16
  • 2011-12-20
  • 1970-01-01
  • 2013-01-03
  • 2016-01-15
  • 2021-10-09
  • 1970-01-01
相关资源
最近更新 更多