কিভাবে সি # তে স্ট্রিংকে পূর্ণসংখ্যায় রূপান্তর করা যায়


উত্তর:


136

আপনি যদি নিশ্চিত হন যে এটি সঠিকভাবে বিশ্লেষণ করবে তবে ব্যবহার করুন

int.Parse(string)

আপনি না হলে, ব্যবহার করুন

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

সতর্ক করা! নীচের ক্ষেত্রে, i0 এর সমান হবে 10 এর পরে নয় TryParse

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

এটি কারণ TryParseএকটি আউট প্যারামিটার ব্যবহার করে , রেফ প্যারামিটার নয়।


4
@ এস্লাইথা, ধন্যবাদ যদি এটি আপনার প্রশ্নের যথেষ্ট উত্তর দেয় তবে দয়া করে উত্তর হিসাবে চিহ্নিত করে মনে রাখবেন।
ব্র্যান্ডন

4
কেবলমাত্র খেয়াল করুন যে আপনার যদি i = 10 থাকে; এবং int.TryParse ব্যবহার করুন ("এসএসডিএফ", আউট i); যে আমি 0 না 10 থাকবে !!! এটি কারণ ট্রাইপার্স একটি রেফ নয়, একটি আউট ভেরিয়েবল ব্যবহার করে।
ক্যাফজিক 16

4
"সাবধানতা" তৃতীয় উদাহরণটিতে প্রযোজ্য - দ্বিতীয়টি নয়। "" এটি "নীচে নয়, উপরের উদাহরণটি উল্লেখ করবে বলে আশা করি যেহেতু আমি কিছুটা হলেও বিস্মিত হয়েছি।
পিটার_এমসিসি

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


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

বা

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

int.TryParseএটি নিরাপদ যেহেতু আপনি যদি অন্য কোনও কিছু রাখেন varString(উদাহরণস্বরূপ "fsfdsfs") আপনি একটি ব্যতিক্রম পাবেন। ব্যবহারের int.TryParseSTRING কখন 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');

"এস" হ'ল আপনার স্ট্রিং যা আপনি কোন ইনট এ রূপান্তর করতে চান। এই কোডটি ধরে নিয়েছে যে রূপান্তরকালে আপনার কোনও ব্যতিক্রম হবে না। সুতরাং আপনি যদি জানেন যে আপনার স্ট্রিং ডেটা সর্বদা কোনও প্রকার মান হবে তবে উপরের কোডটি খাঁটি গতিতে যাওয়ার সেরা উপায়।

শেষে, "y" এর আপনার মান মূল্য থাকবে।


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

এই পদ্ধতি রূপান্তর করতে চেষ্টা করবে someStringমধ্যে someNumeric, এবং আসতে একটি 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
এবং
স্ট্রিং এ কীভাবে রূপান্তর করবেন সি # তে পূর্ণসংখ্যা



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.