我在验证汇款方面遇到了一些麻烦.我已经使用了其他问题的一些指针来编写更好的代码.以下是我用来验证输入是否是金钱的内容.
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) 我创建了一种确定两个字符串是否已排序的方法.除了一个,我的所有测试用例都有效.代码如下.
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) 出于某种原因,当我在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) 由于某种原因,当我运行"测试"方法时,我得到一个错误的结果.我使用了关于随机数生成的其他问题中的一些代码,我已经确认这些代码可以正常工作,但需要额外的安全检查.
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)