小编Rag*_*ave的帖子

验证我的钱

我在验证汇款方面遇到了一些麻烦.我已经使用了其他问题的一些指针来编写更好的代码.以下是我用来验证输入是否是金钱的内容.

static void Main(string[] args)
{
    string myTest1 = "$1,234.56";
    string myTest2 = "$1.00";
    string myTest3 = "$1000.01";
    string myTest4 = "$1,234,567.89";

    myIsMaybeMoneyValidator Miimv = new myIsMaybeMoneyValidator();

    bool myResult1 = Miimv.isMaybeMoney(myTest1);
    bool myResult2 = Miimv.isMaybeMoney(myTest2);
    bool myResult3 = Miimv.isMaybeMoney(myTest3);
    bool myResult4 = Miimv.isMaybeMoney(myTest4);
}

public bool isMaybeMoney(object theirMaybeMoney)
{
    string myMaybeMoney = theirMaybeMoney.ToString();

    if (myMaybeMoney.StartsWith("-"))
    {
        myMaybeMoney.Remove(0, 1);
    }

    if (!myMaybeMoney.StartsWith("$"))
    {
        return false;
    }

    myMaybeMoney.Remove(0, 1);

    string[] myMaybeMoneyStringArray = myMaybeMoney.Split('.');

    string myMaybeMoneyDollars = myMaybeMoneyStringArray[0];
    string myMaybeMoneyCents = myMaybeMoneyStringArray[1];

    if …
Run Code Online (Sandbox Code Playgroud)

c# validation numbers currency

5
推荐指数
1
解决办法
4950
查看次数

我无法确定是否对两个c#字符串进行了排序

我创建了一种确定两个字符串是否已排序的方法.除了一个,我的所有测试用例都有效.代码如下.

class Program
{
    static void Main(string[] args)
    {
        bool test1 = isSorted("test1", "test2");
        bool test2 = isSorted("4576", "4567");
        bool test3 = isSorted("test10", "test11");
        bool test4 = isSorted("abdc", "abcd");
    }

    public static bool isSorted(string MyFirstString, string MySecondString)
    {
        string MyFirstCutString = MyFirstString.ToLower();
        string MySecondCutString = MySecondString.ToLower();

        if (MyFirstString.Length > MySecondString.Length)
            MyFirstCutString = MyFirstCutString.Substring(0, MySecondString.Length);
        else if (MySecondString.Length > MyFirstString.Length)
            MySecondCutString = MySecondCutString.Substring(0, MyFirstCutString.Length);

        for (int i = 0; i < MyFirstCutString.Length; i++)
        {
            if (getNumberic(MyFirstCutString[i]) > getNumberic(MySecondCutString[i]))
                return false;
        } …
Run Code Online (Sandbox Code Playgroud)

c# sorting string unit-testing

-1
推荐指数
1
解决办法
188
查看次数

随机数生成器中的堆栈溢出

出于某种原因,当我在Random类中不使用种子时,此代码工作正常,但如果我尝试使用DateTime.Now获取更随机的数字,我会得到StackOverflowException!我的课非常简单.有人能告诉我这里我做错了什么吗?请参见MakeUniqueFileName.

public class TempUtil
{
    private int strcmp(string s1, string s2)
    {
        try
        {
            for (int i = 0; i < s1.Length; i++)
                if (s1[i] != s2[i]) return 0;
            return 1;
        }
        catch (IndexOutOfRangeException)
        {
            return 0;
        }
    }
    private int Uniqueness(object randomObj)
    {
        switch (randomObj.ToString())
        {
            case "System.Object":
            case "System.String":
                return randomObj.ToString()[0];
            case "System.Int32":
                return int.Parse(randomObj.ToString());
            case "System.Boolean":
                return strcmp(randomObj.ToString(), "True");
            default:
                return Uniqueness(randomObj.ToString());
        }
    }
    public string MakeUniqueFileName()
    {
        return "C:\\windows\\temp\\" + new Random(Uniqueness(DateTime.Now)).NextDouble() + ".tmp";
    }
}
Run Code Online (Sandbox Code Playgroud)

c# stack-overflow random

-2
推荐指数
1
解决办法
1437
查看次数

号码不是号码?

由于某种原因,当我运行"测试"方法时,我得到一个错误的结果.我使用了关于随机数生成的其他问题中的一些代码,我已经确认这些代码可以正常工作,但需要额外的安全检查.

public class strUtls
{
    public void test()
    {
        var maybe = 40000000f * 40000000f;
        bool number = isNumber(maybe);
    }

    public bool isNumber(object O)
    {
        // INT16,INT32,INT64,DOUBLE,FLOAT
        if (upper(O.GetType().ToString()).Contains("INT") || upper(O.GetType().ToString()).Contains("DOUBLE") || upper(O.GetType().ToString()).Contains("FLOAT"))
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    private string upper(string s)
    {
        try
        {
            for (int i = 0; i < s.Length; i++)
            {
                s = s.Replace(s[i], upper(s[i]));
            }

            return s;
        }
        catch (IndexOutOfRangeException)
        {
            return s;
        }
    }

    private char upper(char S)
    { …
Run Code Online (Sandbox Code Playgroud)

c# numbers

-10
推荐指数
1
解决办法
1188
查看次数