如何生成一个随机值,并在字母表显示它
本文关键字:字母表 显示 随机 何生成 一个 | 更新日期: 2023-09-27 18:06:18
我有一个方法可以显示指定长度的1到26之间的随机数。
public string RandomDigits(int length)
{
var random = new Random();
string s = string.Empty;
for (int i = 0; i < length; i++)
s = String.Concat(s, random.Next(1,27).ToString()+" ");
return s;
}
如何以字母形式显示返回值。即该方法返回
1 10 7 2 11
我想要得到A J G B K
这里是使用char代替已定义字符串的解决方案的一个变体。这将使用一个字符数组,然后在末尾将其转换为字符串。比连接字符串更有效。
public string RandomDigits(int length)
{
var random = new Random();
var chars = new char[length];
for (int i = 0; i < length; i++)
chars[i] = (char) random.Next('A', ('Z' + 1));
return string.Join(" ", chars);
}
public string RandomDigits(int length)
{
// Define your char set
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var random = new Random();
string s = string.Empty;
for (int i = 0; i < length; i++)
s = String.Concat(s, chars[random.Next(0,26)] +" ");
return s;
}
是的,我已经为您创建了一个dotnetfiddle来显示输出
using System;
public class Program
{
public static void Main()
{
var s = RandomDigits(5);
Console.WriteLine(s);
}
public static string RandomDigits(int length)
{
char[] alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();
var random = new Random();
string s = string.Empty;
for (int i = 0; i < length; i++)
s = String.Concat(s, alphabet[random.Next(0,26)] +" ");
return s;
}
}
希望这对你有帮助!
不需要字符数组,使用字符和0到25之间的数字:
((char)('A'+$randomNumber)).ToString()
使用StringBuilder
来减少内存分配,只需在[0,26)之间生成一个随机数并将其添加到' a ':
public string RandomDigits(int length)
{
var random = new Random();
var builder = new StringBuilder(length);
for(int i = 0; i < length; i++)
{
var offset = random.Next(0, 26);
char c= (char)('A' + offset);
builder.Append(c);
}
return builder.ToString();
}
如果你想做一些更像linq的事情,那么试试这个:
public IEnumerable<char> YieldRandomDigits(int length)
{
var random = new Random();
var selector = Enumerable.Range(1,length).Select(i => (char)('A' + random.Next(0, 26)));
return selector;
}
你现在可以说:
var s = string.Join("", YieldRandomDigits(10));
最节省计算时间的方法之一是声明一个数组alphabets而不是直接使用随机int,而是使用它作为这个字母表数组
的索引using System;
public class Program
{
static public string RandomDigits(int length)
{
var random = new Random();
string s = string.Empty;
char[] alphabets = { 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
for (int i = 0; i < length; i++)
s = String.Concat(s, alphabets[random.Next(0,26)].ToString()+" ");
Console.WriteLine(s);
return s;
}
public static void Main()
{
Console.WriteLine("Hello World");
Console.WriteLine(RandomDigits(7));
}
}
请看这里https://dotnetfiddle.net/AsHX32
谢谢大家。这就是我需要做的
private String Number2String(int number, bool isCaps)
{
Char c = (Char)((isCaps ? 65 : 97) + (number - 1));
return c.ToString();
}
这是一个将数字转换为字符串的方法然后将长度为6的随机数或任意指定长度的随机数加到列表中
List<int> list = new List<int>();
var random = new Random();
string s = string.Empty;
for (int i = 0; i < 6; i++)
{
list.Add(random.Next(1, 27));
}
foreach (int li in list)
{
s = String.Concat(s, Number2String(li, true) + " ");
//string use = Number2String(li, true);
}
MessageBox.Show(s);
循环遍历列表并将其转换为字母表。这就是我所需要达到的。我想我的问题没有提好。这可能是得到的字母表相当于一个生成的随机数。没有得到随机的字母数字