c# 我需要获取字符串中的第一个数字并将其转换为摩尔斯电码
c# I need to get the first digit in a string and convert it to Morse code
我是 C# 编程的新手,现在我对我的一个项目有疑问。
我必须获取字符串中的第一个数字,然后将其转换为摩尔斯电码。
这是一个例子:
Hello123 --> I need "1"
Bye45 --> I need "4"
我如何得到这个?提前致谢
\d+
是整数的正则表达式。所以
//System.Text.RegularExpressions.Regex
resultString = Regex.Match(subjectString, @"\d+").Value;
returns a string containing the first occurrence of a number in subjectString.
Int32.Parse(resultString)
然后会给你号码。
来自Find and extract a number from a string
使用 Linq,第一个字符是:
char firstDigit = this.Message.FirstOrDefault(c => char.IsDigit(c));
然后,创建一个字典,将数字转换成摩尔斯电码。
class Program
{
static void Main(string[] args)
{
const string text = "abcde321x zz";
var morse = new Morse(text);
Console.WriteLine(morse.Code);
}
}
class Morse
{
private static Dictionary<char, string> Codes = new Dictionary<char, string>()
{
{'1', ".----"}, {'2', "..---"}, {'3', "...--"}, {'4', "....-"},
{'5', "....."}, {'6', "-...."}, {'7', "--..."}, {'8', "---.."},
{'9', "----."}, {'0', "-----"}
};
private string Message;
public string Code
{
get
{
char firstDigit = this.Message.FirstOrDefault(c => char.IsDigit(c));
return Codes.ContainsKey(firstDigit) ? Codes[firstDigit] : string.Empty;
}
}
public Morse(string message)
{
this.Message = message;
}
}
输出为:
...--
我是 C# 编程的新手,现在我对我的一个项目有疑问。 我必须获取字符串中的第一个数字,然后将其转换为摩尔斯电码。
这是一个例子:
Hello123 --> I need "1"
Bye45 --> I need "4"
我如何得到这个?提前致谢
\d+
是整数的正则表达式。所以
//System.Text.RegularExpressions.Regex
resultString = Regex.Match(subjectString, @"\d+").Value;
returns a string containing the first occurrence of a number in subjectString.
Int32.Parse(resultString)
然后会给你号码。
来自Find and extract a number from a string
使用 Linq,第一个字符是:
char firstDigit = this.Message.FirstOrDefault(c => char.IsDigit(c));
然后,创建一个字典,将数字转换成摩尔斯电码。
class Program
{
static void Main(string[] args)
{
const string text = "abcde321x zz";
var morse = new Morse(text);
Console.WriteLine(morse.Code);
}
}
class Morse
{
private static Dictionary<char, string> Codes = new Dictionary<char, string>()
{
{'1', ".----"}, {'2', "..---"}, {'3', "...--"}, {'4', "....-"},
{'5', "....."}, {'6', "-...."}, {'7', "--..."}, {'8', "---.."},
{'9', "----."}, {'0', "-----"}
};
private string Message;
public string Code
{
get
{
char firstDigit = this.Message.FirstOrDefault(c => char.IsDigit(c));
return Codes.ContainsKey(firstDigit) ? Codes[firstDigit] : string.Empty;
}
}
public Morse(string message)
{
this.Message = message;
}
}
输出为:
...--