【问题标题】:Is there a way to access the character of a string in a string array in C#?有没有办法在 C# 中访问字符串数组中的字符串字符?
【发布时间】:2017-02-01 20:34:09
【问题描述】:

我有一个字符串数组,我想访问该数组中第一个元素的字符:

string[] str= new string[num];

for(int i = 0; i < num; i++)
{
    str[i] = Console.ReadLine();
}

在Java中访问字符串数组中第一个元素的字符

str[0].CharAt[0] // 1st character

C# 中有没有办法做到这一点?我能看到的唯一功能是使用substring。在这种情况下会产生更多的开销。

【问题讨论】:

  • @Rinktacular: “一次打印一个字符” - 不,因为str 是一个 字符串数组,而不是单个字符串。
  • 糟糕.. 很好。误读宣言。 :)
  • @Rintacular 这不能解决,我想访问数组中字符串的字符

标签: c# string


【解决方案1】:

你会使用:

str[0][0]

其中第一个[0] 正在访问第0 个数组成员,而下一个[0] 是由System.String 定义的the indexer,它给出了字符串的第0 个char 值(UTF-16 代码单元)。

【讨论】:

    【解决方案2】:

    是的,你可以这样做:

    string[] s = new string[]{"something", "somethingMore"};
    char c = s[0][0];
    

    【讨论】:

    • 这个答案的反对意见是什么?它肯定回答了这个问题,即使该示例不能直接复制并粘贴到 OP 的代码中。
    • 这满足了问题。不知道为什么它被否决。
    • 没有投反对票,但它没有回答问题。问题是关于数组中字符串中的字符。您的答案只是字符串中的字符。您缺少数组部分。
    【解决方案3】:

    您可以将字符串数组的第一个字符串转换为字符数组,然后简单地获取字符数组的第一个值。

    string[] stringArray = {"abc"};
    char[] charArray = stringArray[0].ToCharArray();
    char first = charArray[0];
    

    【讨论】:

    • 如果您只想要第一个char,则无需将整个字符串内容复制到新数组中。
    • 为什么要把它变成一个char数组?
    • 我不知道您可以像其他答案显示的那样对字符串进行索引。谢谢!
    猜你喜欢
    • 2020-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    相关资源
    最近更新 更多