我有一个包含字符串值的变量,如下所示:
var stringWithSpecialChar = "/Home%";
有时此变量不包含任何值,如下所示:
var stringWithSpecialChar = "/%";
我必须在此检查此变量是否包含字符串值。 每次字符串值都在变化,所以我不确定我会再次获得相同的值。
答案 0 :(得分:1)
你可以这样做,对变量做一个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;
}
答案 1 :(得分:1)
我无法理解你问题中的有效值是什么,所以:
如果有效值是某些字母或某些数字的值,请使用以下代码:
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
}
答案 2 :(得分:0)
以下是您的问题的简单实现。我认为/
和%
之间的任何内容都是字符串[它可能包含数字,字母或特殊字符]。另外,我在函数内部检查了字符串是否有效,检查它是否分别以/
和%
开头和结尾。
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
}
}
<强>输出:强>
True
False
True
True
答案 3 :(得分:0)
如果您知道特殊字符并知道它们位于string
的开头和结尾,则可以使用Trim()
:
var stringWithSpecialChar = "/Home%";
var value = stringWithSpecialChar.Trim('/', '%');
if(!string.IsNullOrEmpty(value))
// Use value...
根据您的需要,也可以在条件中使用string.IsNullOrWhiteSpace(value)
。