C# 验证变量包含字符串值
我有一个包含字符串值的变量,如下所示:C# 验证变量包含字符串值,c#,C#,我有一个包含字符串值的变量,如下所示: var stringWithSpecialChar = "/Home%"; var stringWithSpecialChar = "/%"; 有时此变量不包含任何如下值: var stringWithSpecialChar = "/Home%"; var stringWithSpecialChar = "/%"; 我必须在这里检查这个变量是否包含字符串值。 每次字符串值都在更改,因此不确定下次是否会获得相同的值。可以这样做,对变量执行foreac
var stringWithSpecialChar = "/Home%";
var stringWithSpecialChar = "/%";
有时此变量不包含任何如下值:
var stringWithSpecialChar = "/Home%";
var stringWithSpecialChar = "/%";
我必须在这里检查这个变量是否包含字符串值。
每次字符串值都在更改,因此不确定下次是否会获得相同的值。可以这样做,对变量执行foreach循环以检查它是否会看到字符串或字母
var stringWithSpecialChar = "/Home%";
bool blStringInput;
blStringInput = IsThisString(stringWithSpecialChar);
方法来检查是否会看到字符串值:
public static bool IsThisString(string strInput)
{
foreach (char c in strInput)
{
if (char.IsLetter(c))
return true;
}
return false;
}
下面是您的问题的一个简单实现。我认为
/
和%
之间的任何内容都是字符串[它可能包含数字、字母或特殊字符]。此外,我还通过检查字符串是否分别以/
和%
开头和结尾,在函数中包含了一个字符串是否有效的检查
using System;
class MainClass {
public static void Main (string[] args) {
var stringWithSpecialChar = "/Home%";
bool ans = checkIfStringIsPresent(stringWithSpecialChar);
Console.WriteLine(ans);
stringWithSpecialChar = "/%";
ans = checkIfStringIsPresent(stringWithSpecialChar);
Console.WriteLine(ans);
stringWithSpecialChar = "/hi%";
ans = checkIfStringIsPresent(stringWithSpecialChar);
Console.WriteLine(ans);
stringWithSpecialChar = "/12#%";
ans = checkIfStringIsPresent(stringWithSpecialChar);
Console.WriteLine(ans);
}
public static bool checkIfStringIsPresent(string s){
var len = s.Length;
if(s[0]!='/' || s[len-1]!='%')
return false; // if string doesn't start and and with correct symbols, then return false
var i = 0;
for(i=1;i<len-1;i++){
return true; // something is present in between / and %, so return true
}
return false; // else return false
}
}
如果您知道特殊字符,并且知道它们位于
字符串的开头和结尾,则可以使用Trim()
:
var stringWithSpecialChar = "/Home%";
var value = stringWithSpecialChar.Trim('/', '%');
if(!string.IsNullOrEmpty(value))
// Use value...
您也可以根据需要在条件中使用string.IsNullOrWhiteSpace(value)
。我不明白您问题中的有效值是什么,因此:
如果有效值是某些字母或数字的值,请使用以下代码:
using System.Linq;
if (str.Any(char.IsLetterOrDigit)
{
//Some codes
}
但我推荐你;要检查有效或无效的字符串,请像这样使用Regex
:
using System.Text.RegularExpressions;
var regex = new Regex(@"[A-Za-z]"); // You have many options here
if (regex.IsMatch(str))
{
//Some codes
}
您需要捕获“/”和“%”之间的内容吗?您对有效值的定义是什么?如果它检测到字符串中的非字母字符,那么将返回false:)误读代码!-使用LinQ:blStringInput=str.Any(char.isleter)代码>;)那也行;)@莎莎,你的建议对我有用。我对你的答案投赞成票。Regex对我来说很好。