家庭作业帮助带字符串

时间:2014-10-12 15:15:42

标签: c# string

  1. 以下给定的类打印随机小写字符串。字符串中的每个字符都来自相应的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. 修改2中的类,使其可以打印大写字符串。在Main中,生成一些大写字符串,其长度由键盘输入决定。提示:您需要首先找到大写字母的ASCII码。

  3. 这是我到目前为止所做的:

    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?

1 个答案:

答案 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);
}