C#如何找出两个不同的数字在一个字符串中的长度?
我想知道字符串中的两个数字有多大。困难的是这两个数字都是变量,我不知道它们有多长,它们随着时间而增长。程序将变量写入txt文件。现在我读取文件的所有行并将其放入字符串中。在这之后,我需要这两个数字作为一个int来确定这两个变量,并与它们一起计数。 示例代码:C#如何找出两个不同的数字在一个字符串中的长度?,c#,file,count,int,substring,C#,File,Count,Int,Substring,我想知道字符串中的两个数字有多大。困难的是这两个数字都是变量,我不知道它们有多长,它们随着时间而增长。程序将变量写入txt文件。现在我读取文件的所有行并将其放入字符串中。在这之后,我需要这两个数字作为一个int来确定这两个变量,并与它们一起计数。 示例代码: int num1 = 0; int num2 = 0; string text = ""; //imagine foreach keypress B num1++ and foreach keypress N num2++ File.Wr
int num1 = 0;
int num2 = 0;
string text = "";
//imagine foreach keypress B num1++ and foreach keypress N num2++
File.WriteAllLines("C:\\ExampleFile", $"Num1 = {num1}, Num2 = {num2}!");
// between this is a programm restart
text = File.ReadAllLines("C:\\ExampleFile");
//now iwant to get the value of num1 and num2
text.substring(6, num1.length) //something like this idk
num1 = ?
num2 = ?
希望您能理解:)可以使用正则表达式,而不是使用子字符串。比如说,
var regex = new Regex(@"=\s*(?<Number1>\d*),\s*Num2\s*=\s*(?<Number2>\d*)");
var matches = regex.Match(text);
if(matches.Success)
{
var num1 = Int32.Parse(matches.Groups["Number1"].Value);
var num2 = Int32.Parse(matches.Groups["Number2"].Value);
}
var regex=new regex(@“=\s*(?\d*),\s*Num2\s*=\s*(?\d*)”;
var matches=regex.Match(文本);
如果(匹配。成功)
{
var num1=Int32.Parse(匹配.Groups[“Number1”].Value);
var num2=Int32.Parse(匹配.Groups[“Number2”].Value);
}
正则表达式表示两个组(由“(?[表达式]”)表示),第一个组由“=”前面的数字和空格组成。第一组后面是“,”和空白字符。后面是第二组,前面是文本“Num2”,其定义与第一组相同
您可以使用
ToString()
将它们打印到字符串中,然后调用。虽然从技术上讲,字符串不是char[](即使它可能是一个包装字符),但可以将其视为一个字符。然而,这可能会给你错误的结果。要打印或解析的字符串表示形式在很大程度上取决于Windows中设置的用户区域性
除了不同的千和十进制分隔符之外,在不同的文化中如何对数字进行分组甚至有不同的想法——比如印度和印度
如果问题是关于以10为基数的位数,那么这将不起作用。然而我记得最近的一个案例,有人计算出除法的小数部分有多少个重复的数字。我认为此代码将适合您的情况:
int current = Input;
int Digits = 1;
while(current >= 10){
current = current / 10;
Digits++;
}
您可以将分隔符上的字符串拆分,并将其用作数组
var input = $"Num1 = 123, Num2 = 456!"
//Results in the array { "Num1","123","Num2","456" }
var tokens = input.Split(new char[] { '=', ',', ' ', '!'}, StringSplitOptions.RemoveEmptyEntries);
var num1 = int.Parse(tokens[1]);
var num2 = int.Parse(tokens[3]);
是的,谢谢你。你能解释一下正则表达式模式吗:)我不明白:/@Luuke我添加了一个简短的描述。如果你需要更多,请告诉我