我是初学者,希望有人可以帮助我。
我要做的是检查char b
中string 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]);
}
}
}
答案 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--
..我认为这就是你追求的目标。