2010-07-14 13 views
5

मैं एक सरणी से स्ट्रिंग में एक प्रतिस्थापन करने की कोशिश कर रहा हूं लेकिन यहऐरे में बदलें

dna[i].replace('T', 'C'); 

काम नहीं करता है और इस तरह से काम करता है?

"ATCTA".replace('T', 'C'); 

क्यों सरणी के साथ काम नहीं करते हैं, मैं सरणी में एक प्रतिस्थापन का उपयोग कैसे कर सकता हूं []

अब मुझे दूसरी समस्या है, मैं मूल स्ट्रिंग में विभिन्न प्रतिस्थापन का उपयोग करना चाहता हूं, मैं इसे कैसे मा सकता हूं ?? ??

+1

'तार की एक सरणी या वर्ण की एक सरणी dna' है? – VeeArr

+1

त्रुटि या आपकी अपेक्षा वास्तव में क्या थी - जैसा कि आप उत्तर से देख सकते हैं, हमारे पास पहले से ही दो प्रतिस्पर्धी सिद्धांत हैं ;-) –

उत्तर

8
String dna[] = {"ATCTA"}; 
int i = 0; 
dna[i] = dna[i].replace('T', 'C'); 
System.out.println(dna[i]); 

यह अपेक्षा के अनुसार काम करता है। यदि आप एक समान पैटर्न का पालन करते हैं तो अपने कोड को दो बार जांचें।


आप की उम्मीद हो सकता है, कि dna[i].replace('T', 'C'); में परिवर्तन सेल dna[i] सीधे की सामग्री। यह मामला नहीं है, स्ट्रिंग नहीं बदलेगी, replace एक नया स्ट्रिंग लौटाएगा जहां चार को बदल दिया गया है। एक चर के लिए replace ऑपरेशन का परिणाम असाइन करना आवश्यक है।


अपने अंतिम टिप्पणी का जवाब करने के लिए:

स्ट्रिंग्स अपरिवर्तनीय हैं - यदि आप स्ट्रिंग ऑब्जेक्ट के अंदर एक भी चार नहीं बदल सकते। स्ट्रिंग्स पर सभी ऑपरेशन (सबस्ट्रिंग, प्रतिस्थापित, '+', ...) हमेशा नए स्ट्रिंग्स बनाते हैं।

एक से अधिक की जगह बनाने के लिए एक तरह से इस तरह है:

dna[i] = dna[i].replace('T', 'C').replace('A', 'S'); 
+0

यह स्ट्रिंग्स का एक-तत्व सरणी बना देगा, और 'dna [i]' संदर्भ पहले (केवल) तत्व। मुझे लगता है कि ओपी स्ट्रिंग ऑब्जेक्ट और स्ट्रिंग्स की सरणी नहीं, वर्णों की एक सरणी को भ्रमित कर रहा था। – Andy

+0

@ एंड्रियास, मुझे लगता है कि उसके पास पात्रों की एक सरणी है, न कि तारों की सरणी। – jjnguy

+0

मैंने सोचा कि उसके पास स्ट्रिंग्स की एक सरणी थी, वर्णों की नहीं। –

2

एक सरणी केवल एक डेटा संरचना है जो डेटा रखती है। यह उस डेटा पर किसी भी संचालन का समर्थन नहीं करता है। आपको डेटा पर काम करने के लिए एल्गोरिदम लिखना होगा।

String मूल रूप से कुछ विधियों के साथ एक चार सरणी है जिसे आप उस पर कॉल कर सकते हैं। replace() विधि उनमें से एक है।

विधि आप कुछ इस तरह दिखेगा हैं:

static void replace(char[] arr, char find, char replace) { 
    for (int i = 0; i < arr.length; i++) { 
     if (arr[i] == find) { 
      arr[i] = replace; 
      return; 
     } 
    } 
} 

फिर आप यह इतना की तरह कहेंगे:

replace(dna, 'T', 'C'); 

यह एक C साथ सरणी में T का पहला उदाहरण की जगह लेंगे ।

संबंधित मुद्दे