स्ट्रिंग में इंट कन्वर्ट करें?


जवाबों:


741
string myString = myInt.ToString();

4
इसके साथ मेरी समस्या यह है कि आप टाइप सेफ्टी खो देते हैं। myInt कुछ भी हो सकता है। यहां कुछ भी नहीं कहते हैं कि एक पूर्णांक लें और इसे एक स्ट्रिंग में परिवर्तित करें। myInt एक ऑब्जेक्ट हो सकता है और ऑब्जेक्ट को स्ट्रिंग में परिवर्तित नहीं किया जा सकता है। यह संकलन के समय में जाना जाता है, लेकिन यह एक रनटाइम अपवाद भी नहीं बढ़ाएगा जो इसे केवल खराब डेटा की अनुमति देगा।
टिमोथी गोंजालेज

3
@TimothyGonzalez यह एक धार का मामला है, अगर आप कॉल करते हैं .ToString () इसकी आमतौर पर क्योंकि आपको इसे एक स्ट्रिंग होने की आवश्यकता है और यह एक स्ट्रिंग हो सकती है।
एपिककिप

35
@nfgallimore यह एक मान्य एज केस नहीं है, यह इस स्थिति में एज केस भी नहीं है। ओपी ने कहा कि उसके पास एक अंतर प्रकार है जिसे वह एक स्ट्रिंग में बदलना चाहता था। यदि यह एक अंतर प्रकार है, तो सादा और सरल मूल्य एक अंतर है। संकलक बीमा करेगा कि मामला क्या है। यह भी निश्चित नहीं है कि आप उस स्पर्शरेखा पर कैसे गए थे। ओपी ने यह नहीं पूछा कि कैसे सुनिश्चित करें कि एक यादृच्छिक संदर्भ एक पूर्णांक था और फिर इसे एक स्ट्रिंग में परिवर्तित करें। शायद उस मामले में आपके पास एक बिंदु है, लेकिन ऐसा नहीं है।
आरोनम

1
यह समाधान nullमूल्यों के लिए अपवाद फेंक देता है।
मेहंदी देघानी

18
इस जवाब पर टिप्पणी हास्यास्पद है।

524
string s = i.ToString();
string s = Convert.ToString(i);
string s = string.Format("{0}", i);
string s = $"{i}";
string s = "" + i;
string s = string.Empty + i;
string s = new StringBuilder().Append(i).ToString();

6
यह भी आप कर सकते हैंstring count = "" + intCount;
डायन डिर्ज़ा

2
क्या ये सभी समाधान समान रूप से कुशल हैं? मैं कल्पना करता हूं कि i.oString () इंट की कुछ अनावश्यक बॉक्सिंग करता है, लेकिन शायद यह वैसे भी अनुकूलित है।
स्टीफन होल्ट

43
.ToString()रूपांतरण करने का सबसे कारगर तरीका है। यहां प्रस्तुत अन्य सभी विधियां अंततः .ToString()वैसे भी कॉल करेंगी ।
जेवियर पोइनास

6
मैं इस तथ्य से थोड़ा s
अशांत

1
@XavierPoinas जबकि वे "ToString ()" कह सकते हैं - यह कुछ हद तक निर्भर करता है कि आप इसके साथ क्या करने की योजना बनाते हैं जो सबसे कुशल है। string s = "xyz" + i;एक नया "xyz" स्ट्रिंग बनाएगा - अपने पूर्णांक वाले नए स्ट्रिंग को बनाएँ; और फिर एक 3 स्ट्रिंग बनाएं जिसमें 2 संक्षिप्त हों। string.Format("xyz{0}", i);दूसरी ओर, सिर्फ 2 स्ट्रिंग्स का उत्पादन करने में सक्षम है - क्योंकि यह उन्हें इनलाइन कर रहा है। यह प्रदर्शन और अधिक ध्यान देने योग्य हो जाता है क्योंकि तार लंबे हो जाते हैं।
UKMonkey

32

बस अगर आप बाइनरी प्रतिनिधित्व चाहते हैं और आप अभी भी पिछली रात की पार्टी से नशे में हैं:

private static string ByteToString(int value)
{
    StringBuilder builder = new StringBuilder(sizeof(byte) * 8);
    BitArray[] bitArrays = BitConverter.GetBytes(value).Reverse().Select(b => new BitArray(new []{b})).ToArray();
    foreach (bool bit in bitArrays.SelectMany(bitArray => bitArray.Cast<bool>().Reverse()))
    {
        builder.Append(bit ? '1' : '0');
    }
    return builder.ToString();
}

नोट: कुछ के बारे में बहुत अच्छी तरह से धीरज नहीं संभाल रहा है ...

संपादित करें: यदि आपको गति के लिए थोड़ी मेमोरी का त्याग करने में कोई आपत्ति नहीं है, तो आप पूर्व-परिकलित स्ट्रिंग मूल्यों के साथ एक सरणी उत्पन्न करने के लिए नीचे का उपयोग कर सकते हैं:

static void OutputIntegerStringRepresentations()
{
    Console.WriteLine("private static string[] integerAsDecimal = new [] {");
    for (int i = int.MinValue; i < int.MaxValue; i++)
    {
        Console.WriteLine("\t\"{0}\",", i);
    }
    Console.WriteLine("\t\"{0}\"", int.MaxValue);
    Console.WriteLine("}");
}


14

किसी भी वस्तु की ToString विधि उस वस्तु का एक स्ट्रिंग प्रतिनिधित्व वापस करने के लिए माना जाता है।

int var1 = 2;

string var2 = var1.ToString();

10

@ जेवियर की प्रतिक्रिया पर आगे, यहां एक पृष्ठ है जो 100 पुनरावृत्तियों से 21,474,836 पुनरावृत्तियों तक रूपांतरण करने के लिए कई अलग-अलग तरीकों के बीच गति तुलना करता है

ऐसा लगता है कि दोनों के बीच बहुत अधिक मेल है:

int someInt = 0;
someInt.ToString(); //this was fastest half the time
//and
Convert.ToString(someInt); //this was the fastest the other half the time



4

उत्तर में से कोई भी उल्लेख नहीं किया गया है कि ToString()विधि पूर्णांक अभिव्यक्तियों पर लागू की जा सकती है

Debug.Assert((1000*1000).ToString()=="1000000");

समकोण शाब्दिक को भी

Debug.Assert(256.ToString("X")=="100");

हालाँकि इस तरह के पूर्णांक शाब्दिक अर्थ अक्सर खराब कोडिंग शैली ( जादू की संख्या ) के रूप में माने जाते हैं, ऐसे मामले भी हो सकते हैं जहां यह सुविधा उपयोगी है ...


3
using System.ComponentModel;

TypeConverter converter = TypeDescriptor.GetConverter(typeof(int));
string s = (string)converter.ConvertTo(i, typeof(string));

यह उत्तर कम गुणवत्ता की समीक्षा कतार में बदल गया, संभवतः क्योंकि आपने कोड की व्याख्या नहीं की थी। यदि आप इसे (अपने उत्तर में) समझाते हैं, तो आप अधिक उत्थान प्राप्त करने की संभावना रखते हैं - और प्रश्नकर्ता वास्तव में कुछ सीखता है!
द हैट के साथ लड़के

5
@ TheGuywithTheHat आप देखेंगे कि यहाँ किसी भी उत्तर में कोड की कोई व्याख्या नहीं है, विशेष रूप से इस अत्यधिक उत्क्रमित उत्तर में सभी कोड नमूने , क्योंकि यह स्पष्ट है कि वे क्या कर रहे होंगे: एक स्ट्रिंग के लिए एक इंट को परिवर्तित करना। सच में, हमें स्वीकार किए गए उत्तर से परे कुछ भी करने की आवश्यकता नहीं है - i.ToString- बाकी केवल पूर्णता और मज़े के लिए यहाँ हैं।
nmclean

2
अन्य उत्तरों में स्पष्टीकरण की कमी का मतलब यह नहीं है कि सभी उत्तरों में स्पष्टीकरण की कमी होनी चाहिए। केवल कारण मैंने इस विशेष उत्तर पर टिप्पणी की क्योंकि मैंने इसे कम गुणवत्ता की समीक्षा कतार में देखा था।
द गाईड विथ द हैट

@ TheGuywithTheHat मैं सुझाव नहीं दे रहा था कि मेरा उत्तर अधूरा हो सकता है क्योंकि अन्य हैं; मैं कह रहा हूं कि उनमें से कोई भी (इस एक सहित) नहीं है क्योंकि इस प्रश्न के संदर्भ में इरादा स्पष्ट है।
nmclean

2
@reggaeguitar यह ज्यादातर एक मजाक का जवाब है, हम जानबूझकर सबसे बुनियादी कार्यों में से एक करने के अधिक से अधिक अस्पष्ट तरीके जोड़ रहे थे। लेकिन आपके प्रश्न के लिए, इस पद्धति का लाभ यह होगा कि यदि आप पहले से प्रकारों को नहीं जानते हैं - इसके बजाय typeof(int)और typeof(string)आपके पास प्रकार चर हो सकते हैं और जब भी कोई मौजूद होता है तो वह एक उपयुक्त कनवर्टर का उपयोग करता है।
nmclean

1
string s = "" + 2;

और आप अच्छे काम कर सकते हैं जैसे:

string s = 2 + 2 + "you" 

परिणाम होगा:

"4 आप"

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.