C#で文字列を整数に変換する方法


回答:


134

正しく解析されることが確実な場合は、

int.Parse(string)

そうでない場合は、

int i;
bool success = int.TryParse(string, out i);

注意!以下の場合、iは0に等しくなり、TryParse。の後の10ではありません。

int i = 10;
bool failure = int.TryParse("asdf", out i);

これは、refパラメーターではなくoutパラメーターをTryParse使用するためです。


2
@sslaitha、ありがとう。それがあなたの質問に十分に答えたならば、それを答えとしてマークすることを忘れないでください。
ブランドン

3
int i = 10の場合に注意してください。そして、int.TryParse( "asdf"、out i);を使用します。私は10ではなく0を含みます!!! これは、TryParseがrefではなくout変数を使用するためです。
CaffGeek 2010年

2
「注意」は、2番目の例ではなく3番目の例に適用されます。「これ」が下ではなく上の例を参照することを期待していたので、少し戸惑いました。
peter_mcc 2014

22
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;
}

9
int a = int.Parse(myString);

またはさらに良いことに、調べてください int.TryParse(string)


6
string varString = "15";
int i = int.Parse(varString);

または

int varI;
string varString = "15";
int.TryParse(varString, out varI);

int.TryParse何か他のものvarString(たとえば「fsfdsfs」)を入れると例外が発生するため、より安全です。int.TryParse文字列をintに変換できない場合に使用すると、が返され0ます。


5

文字列に「実数」が含まれていることが確実な場合、または発生する可能性のある例外に問題がない場合は、これを使用してください。

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;
}


3
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);

2

ここでは、4つの手法がベンチマークされています。

最速の方法は次のとおりです。

y = 0;
for (int i = 0; i < s.Length; i++)
       y = y * 10 + (s[i] - '0');

「s」は、intに変換する文字列です。このコードは、変換中に例外が発生しないことを前提としています。したがって、文字列データが常にある種のint値であることがわかっている場合は、上記のコードが純粋な速度を実現するための最良の方法です。

最後に、「y」はint値になります。


2
bool result = Int32.TryParse(someString, out someNumeric)

この方法では、変換しようとしますsomeStringsomeNumeric、と返す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#の整数



0

どちらでも使用できます、

    int i = Convert.ToInt32(myString);

または

    int i =int.Parse(myString);

0
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));
    }
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.