我有一个字符串变量,它基本上以中文的形式保存相应的英语字的值。
String temp = "'%1'不能输入步骤'%2'";
但是当我想通过使用IndexOf函数知道其中包含%1的字符串
if(temp.IndexOf("%1") != -1)
{
}
即使它包含%1,我也没有成功。
因为中国章程或其他任何问题,是否有任何问题。
请告诉我如何在上述情况下获得任何宪章的索引。
答案 0 :(得分:0)
这是因为%1
不等于%1
在这种情况下您要做什么,因为解决方法是选择字符串中的符号
var s = "'%1'不能输入步骤'%2'";
var firstFragment = s.Substring(1, 2); // this should select you %1
然后再做
if(temp.IndexOf(first) != -1){
}
答案 1 :(得分:0)
评论给出了答案。使用相同的百分比字符,而不是:
"%1"
使用:
"%1"
或者,如果您发现有问题(您的源代码位于"差"代码页,或者您担心代码在包含类似ASCII字符的全角字符时难以阅读),使用方法:
"\uFF051"
甚至:
"\uFF05" + "1"
(串联将由C#编译器完成,在运行时不会进行额外的连接。)
另一种方法可能是 Unicode规范化:
temp = temp.Normalize(NormalizationForm.FormKC);
似乎预示着"异国情调"虽然我不确定这种行为是否得到保证,但是请参阅Unicode Character 'FULLWIDTH PERCENT SIGN' (U+FF05)上的Decomposition
字段。