C#で文字列を整数に変換するにはどうすればよいですか?
正しく解析されることが確実な場合は、
int.Parse(string)
そうでない場合は、使用します
int i;
bool success = int.TryParse(string, out i);
注意!以下の場合、i
はTryParse
の後の10ではなく0になります。
int i = 10;
bool failure = int.TryParse("asdf", out i);
これは、TryParse
がrefパラメーターではなく、outパラメーターを使用するためです。
int myInt = System.Convert.ToInt32(myString);
他のいくつかの人が言及したように、int.Parse()
とint.TryParse()
も使用できます。
string
が常にint
になることが確実な場合:
int myInt = int.Parse(myString);
string
が本当にint
であるかどうかを最初に確認したい場合:
int myInt;
bool isValid = int.TryParse(myString, out myInt); // the out keyword allows the method to essentially "return" a second value
if (isValid)
{
int plusOne = myInt + 1;
}
int a = int.Parse(myString);
さらに良いことに、int.TryParse(string)
を調べてください
string varString = "15";
int i = int.Parse(varString);
または
int varI;
string varString = "15";
int.TryParse(varString, out varI);
int.TryParse
は、varString
に別のもの(たとえば "fsfdsfs")を入れると例外が発生するため、より安全です。文字列をintに変換できないときにint.TryParse
を使用すると、0
が返されます。
文字列に「実際の」番号があることが確実な場合、または発生する可能性のある例外に慣れている場合は、これを使用します。
string s="4";
int a=int.Parse(s);
プロセスをさらに制御するには、次を使用します
string s="maybe 4";
int a;
if (int.TryParse(s, out a)) {
// it's int;
}
else {
// it's no int, and there's no exception;
}
次のようなことを行います。
var result = Int32.Parse(str);
int i;
string whatever;
//Best since no exception raised
int.TryParse(whatever, out i);
//Better use try catch on this one
i = Convert.ToInt32(whatever);
最速の方法は次のとおりです。
y = 0;
for (int i = 0; i < s.Length; i++)
y = y * 10 + (s[i] - '0');
「s」は、intに変換する文字列です。このコードは、変換中に例外が発生しないことを前提としています。したがって、文字列データが常に何らかのint値であることがわかっている場合は、上記のコードが純粋な速度を実現する最良の方法です。
最後に、「y」にint値が設定されます。
bool result = Int32.TryParse(someString、out someNumeric)
このメソッドは、string someString
をint someNumeric
に変換し、boolean result
を返します。 true
変換が成功した場合、false
変換が失敗した場合。 Int32.Parse
メソッドのように変換が失敗した場合、このメソッドは例外をスローせず、代わりにsomeNumeric
に対してゼロを返します。
詳細については、こちらをご覧ください。
https://msdn.Microsoft.com/en-us/library/f02979c7(v = vs.110).aspx?cs-save-lang = 1&cs-lang = csharp#code-snippet-2 =
&
C#で文字列を整数に変換する方法
int i;
string result = Something;
i = Convert.ToInt32(result);
どちらでも使用できますが、
int i = Convert.ToInt32(myString);
または
int i =int.Parse(myString);
class MyMath
{
public dynamic Sum(dynamic x, dynamic y)
{
return (x+y);
}
}
class Demo
{
static void Main(string[] args)
{
MyMath d = new MyMath();
Console.WriteLine(d.Sum(23.2, 32.2));
}
}