C# 如何将字符串转换为int和count?
但这不起作用,不是一个好办法 也许我需要在变量tt和yy之后计算X和Y? 我想计算循环执行变量tt的次数和执行变量yy的次数。只需输入int变量和make++就可以得到将它们分离为X和Y所需的整体框架。因此,如果我有6个框架,那么X将是3,Y将是3。编辑 要使此代码正常工作C# 如何将字符串转换为int和count?,c#,string-conversion,C#,String Conversion,但这不起作用,不是一个好办法 也许我需要在变量tt和yy之后计算X和Y? 我想计算循环执行变量tt的次数和执行变量yy的次数。只需输入int变量和make++就可以得到将它们分离为X和Y所需的整体框架。因此,如果我有6个框架,那么X将是3,Y将是3。编辑 要使此代码正常工作 X = string.Format("Frame_X_{0} ", i + 1); Y = string.Format("Frame_Y_{0} ", i + 1); int c = Convert.ToInt32(X)
X = string.Format("Frame_X_{0} ", i + 1);
Y = string.Format("Frame_Y_{0} ", i + 1);
int c = Convert.ToInt32(X);
int d = Convert.ToInt32(Y);
framesNumberX += c;
framesNumberY += d;
你需要像这样提取数字
X = string.Format("Frame_X_{0} ", i + 1);
Y = string.Format("Frame_Y_{0} ", i + 1);
int c = Convert.ToInt32(ExtractNumbers(X));//modfied code line
int d = Convert.ToInt32(ExtractNumbers(Y));//modfied code line
framesNumberX += c; framesNumberY += d;
上一个Ans 好办法是
static string ExtractNumbers( string expr )
{
return string.Join( null,System.Text.RegularExpressions.Regex.Split( expr, "[^\\d]" ) );
}
检查字符串是否可转换。Int32()不是Val()
方法,换句话说,它不会只从任何字符串中获取数字。使用Convert.Int32()
时,整个字符串必须是数字,例如:
static void Main()
{
// Convert string to number.
string text = "123";
int num = -1;
if( int.TryParse (text,out num))
Console.WriteLine(num);
}
如果我理解正确,您正在尝试将某些内容转换为int并同时计数(此处)
上述内容最好写为:
X = string.Format("Frame_X_{0} ", i + 1);
Y = string.Format("Frame_Y_{0} ", i + 1);
// blows up with an exception
int c = Convert.ToInt32(X);
int d = Convert.ToInt32(Y);
framesNumberX += c;
framesNumberY += d;
或者——这将更加清楚;首先进行数学运算,然后在string.Format()调用中使用结果
X = string.Format("Frame_X_{0} ", i + 1);
Y = string.Format("Frame_Y_{0} ", i + 1);
framesNumberX++;
framesNumberY++;
// or (depending on what you need)
framesNumberX = i + 1;
framesNumberY = i + 1;
但是,framesNumberX和framesNumberY将彼此相等,并且等于迭代器i+1
。这就是我开始失去变量的目的的地方。如果您能用伪代码明确您正试图实现的目标,这将有所帮助:
framesNumberX = i + 1;
framesNumberY = i + 1;
X = string.Format("Frame_X_{0} ", framesNumberX);
Y = string.Format("Frame_Y_{0} ", framesNumberY);
这个问题毫无意义。。。它充满了杂乱无章的句子。你得到了什么确切的结果?Ramhound我没有得到任何结果,因为无法将X和Y以这种方式转换为int。我得到的是错误非法字符。@user1526380-这意味着你试图转换的不是number@user1526380-如果答案对您有效,请不要忘记将其标记为已接受你…@ChrisGessler-除了作者有问题外,没有告诉我们他得到了什么结果,int.Parse
是一种不同的方法,然后Convert.Int32()
@ChrisGessler-我更新了代码…@ChrisGessler,但是再次更新。这真的是OP第一次在代码中有他/她不知道的东西吗?@PranayRana-int.Parse会在字符串不是数字的情况下抛出异常。在这样的情况下使用TryParse要好得多。@Ramhound-是的,谢谢你把它弄出来。。。
X = string.Format("Frame_X_{0} ", i + 1);
Y = string.Format("Frame_Y_{0} ", i + 1);
framesNumberX++;
framesNumberY++;
// or (depending on what you need)
framesNumberX = i + 1;
framesNumberY = i + 1;
framesNumberX = i + 1;
framesNumberY = i + 1;
X = string.Format("Frame_X_{0} ", framesNumberX);
Y = string.Format("Frame_Y_{0} ", framesNumberY);
public void MyMethod()
{
... code here
// trying to `your explanation`
... code here
// and here, I'm trying to `your explanation`
... code here
}