web-dev-qa-db-ja.com

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

C#で文字列を整数に変換するにはどうすればよいですか?

85
user282078

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

int.Parse(string)

そうでない場合は、使用します

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

注意!以下の場合、iTryParseの後の10ではなく0になります。

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

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

135
Brandon
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;
}
22
devuxer
int a = int.Parse(myString);

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

9
Neil N
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が返されます。

6
MadBoy

文字列に「実際の」番号があることが確実な場合、または発生する可能性のある例外に慣れている場合は、これを使用します。

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

次のようなことを行います。

var result = Int32.Parse(str);
5
Tomas Vana
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);
3
madatanic

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

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

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

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

最後に、「y」にint値が設定されます。

2
user3810900

bool result = Int32.TryParse(someString、out someNumeric)

このメソッドは、string someStringint 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#で文字列を整数に変換する方法

2
jet_choong
int i;

string result = Something;

i = Convert.ToInt32(result);
0
deepu

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

    int i = Convert.ToInt32(myString);

または

    int i =int.Parse(myString);
0
Deadlock
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));
    }
}
0
Abdo