查看字符串是否包含char并将其写出

时间:2014-06-25 14:13:31

标签: c# arrays char

我是初学者,希望有人可以帮助我。

我要做的是检查char bstring s中的字符是否存在。如果它存在,它应该将字母写入正确索引号的char数组。如果没有,那么它应该写一个-。但这会不断重置char b的每个新实例。有什么想法吗?

public static void test(char[] h, char b, string s)
{
    for (int i = 0; i < s.Length; i++)
    {
        if (s[i] == b)
        {
            h[i] = b;
            Console.Write(h[i]);
        }
        if (s[i] != b)
        {
            h[i] = '-';
            Console.Write(h[i]);
        }
    }
}

5 个答案:

答案 0 :(得分:4)

.Contains()方法

尝试适用于你的string.Contains方法。

someString.Contains('c'); // where c can be any character. returns a bool value

http://msdn.microsoft.com/en-us/library/dy85x1sa(v=vs.110).aspx

.IndexOf()方法

您也可以尝试在字符串的indexNumber处获取字符。

int index = IndexOf("String here"); // zero based index number... returns int

上面的mentioed代码是一个用于查找字符的单行代码。

http://msdn.microsoft.com/en-us/library/k8b1470s(v=vs.110).aspx

只是为了帮助

我认为您要在可用的字符串中搜索每个字符。几天前,Jon Skeet告诉我这一个

char characterToFind = 'r';
string s = "Hello world!";
int index = 0; // because foreach won't use any int i = 0 method
foreach (char c in s) { // foreach character in the string
  // read the character and post the output
  if(c == characterToFind) {
    Console.Write("Character found at: " + index.ToString());
  }
  index++; // increment
}

答案 1 :(得分:1)

您可以执行以下操作:

string str = "hello world";
str.Contains('h');

答案 2 :(得分:1)

您也可以使用:

string.IndexOfAny(b) >= 0;

它将为您提供可以存储在数组中的char的索引。

答案 3 :(得分:1)

您可以使用str.IndexOf(String char)方法。

答案 4 :(得分:0)

您可以将代码简化为:

for (int i = 0; i < s.Length; i++)
{
    if(s[i] == b)
    {
        h[i] = b;
    }
    else
    {
        h[i] = '-';
    }

    Console.Write(h[i]);
}

(..实际上使用三元运算符?:进一步简化它,但让我们保持简单)。以此作为输入运行:

var h = new char[16];
test(h, 'p', "purple people");

产生此输入:

p--p---p--p--

..我认为这就是你追求的目标。