Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 验证变量包含字符串值_C# - Fatal编程技术网

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对我来说很好。