以下给定的类打印随机小写字符串。字符串中的每个字符都来自相应的ASCII十进制代码。在Main中,使用此类生成三(3)个随机字符串,其长度分别为8,26和80.
class RandomString
{
public static void myString(int n)
{
Random rand = new Random ();
for(int i = 1; i<=n; i++)
{
int x = rand.Next (97, 121);
char c = (char)x;
Console.Write(c);
}
Console.WriteLine();
}
}
修改2中的类,使其可以打印大写字符串。在Main中,生成一些大写字符串,其长度由键盘输入决定。提示:您需要首先找到大写字母的ASCII码。
这是我到目前为止所做的:
class RandomString
{
public static void myString(int n)
{
Random rand = new Random();
for (int i = 1; i <= n; i++)
{
int x = rand.Next(97, 121);
char c = (char)x;
Console.Write(c);
}
Console.WriteLine();
}
}
class Program
{
static void Main(string[] args)
{
//Question 2
RandomString.myString(8);
RandomString.myString(26);
RandomString.myString(80);
//Question 3
Console.WriteLine("How big is your string?");
int num = int.Parse(Console.ReadLine());
RandomString.myString(num);
}
}
如何填写问题3?
答案 0 :(得分:2)
原始代码随机化一个介于97之间的数字(这是a
的ascii代码)和122(这是z
的ascii代码)之间的数字。如果你咨询ascii table,你会发现A
的代码是65,而Z
的代码是90.所以你可以只替换源中的常量并得到:
public static void myString(int n)
{
Random rand = new Random();
for (int i = 1; i <= n; i++)
{
int x = rand.Next(65, 90); // Changed here.
char c = (char)x;
Console.Write(c);
}
Console.WriteLine();
}
但是,从软件工程的角度来看,您可能想要提取公共代码:
public static void myString(int n, int lowerBound, int uppedBound)
{
Random rand = new Random();
for (int i = 1; i <= n; i++)
{
int x = rand.Next(lowerBound, upperBound); // Changed here.
char c = (char)x;
Console.Write(c);
}
Console.WriteLine();
}
public static void myLowerCaseString(int n)
{
myString (97, 122);
}
public static void myUpperCaseString(int n)
{
myString (65, 90);
}