हेटरोज्यगोट को कैसे बदलें?

मेरा सवाल है: मैं "ए: ए" या "जी: टी" को कैसे बदल सकता हूं .... (जीवविज्ञान में हेटरोज्यगोटे और होमोज्यगोट)

मेरा कोड:

 for(int i = 0; i < index1.length(); i++){

        if (index1.charAt(i) == 'A:A'){index2 = index1.append('1');}
        else if (index1.charAt(i) == 'G:T'){index2 = index1.append('2');}   

"CharAt (i) == 'ए: ए'" और ".charAt (i) == 'जी: टी'" गलती दिखाते हैं जब मैंने ग्रहण में कोड संपादित किया था।

मैं अपनी स्ट्रिंग में 'ए: ए' और 'जी: टी' के चरित्र को एक विशिष्ट संख्या के रूप में प्रतिस्थापित करना चाहता हूं (उदाहरण के लिए: ए: ए = 1, जी: टी = 2) मेरी स्ट्रिंग में, मैं इसे कैसे प्राप्त कर सकता हूं? धन्यवाद,

0
मैं कुछ हद तक उलझन में हूं कि एक char बराबर <कोड> ए: ए कैसे हो सकता है?
जोड़ा लेखक christopher, स्रोत
@ user3058889 लगता है जैसे आप स्ट्रिंग प्रतिस्थापन करना चाहते हैं। जावा <कोड> स्ट्रिंग कक्षा में कई उपयोगी विधियां उपलब्ध हैं। "जावा स्ट्रिंग एपीआई" के लिए खोजें। आलसी के लिए लिंक
जोड़ा लेखक user1766760, स्रोत

2 उत्तर

यदि आप हमेशा 1:/code> और G: T 2 के साथ ए: ए को प्रतिस्थापित करना चाहते हैं, तो आप बस स्ट्रिंग प्रतिस्थापित करें का उपयोग करें।

public void formatString(String input)
{
    return input.replaceAll("A:A", "1").replaceAll("G:T", "2");
}

आप जितनी चाहें उतनी प्रतिस्थापित विधियों को चेन कर सकते हैं! आपको यह जानने की जरूरत नहीं है कि यह कहां है। जावा आपके लिए ऐसा करेगा (यह उस तरह चालाक है) । आप बस इसे बताएं कि आप किस चीज से छुटकारा पाना चाहते हैं, और आप इसके स्थान पर क्या चाहते हैं!

बस एक और विकल्प

आपका दूसरा विकल्प एक सरणी कार्यान्वयन का उपयोग करके अपने heterozygotes और उनके संबंधित नंबरों के बीच मैपिंग बनाना है। आपके पास ऐसा क्षेत्र होगा जो इस तरह दिखता है:

private String[] heterozygotes;

अपने कन्स्ट्रक्टर में आप इसे बना सकते हैं:

public MyClass()
{
    heterozygotes = {"A:A", "G:T"};
}

अब, आपको स्थिति <कोड> 0 , G: T स्थिति 1 पर ए: ए मिला है, इसलिए आप निम्नानुसार आपकी विधि में इसका उपयोग कर सकते हैं:

public void formatString(String input)
{
    for(int x = 0; x < heterozygotes.length; x++) { 
        //EG: A:A is as position 0, so replace with 0 + 1 = 1.
        input = input.replace(heterozygotes[x], String.valueOf(x + 1));
    }

    return input;
}

इस तरह, आपको बस इतना करना है कि आपके सरणी प्रारंभिकरण में मान जोड़ें, और आपको विधि को बदलने की आवश्यकता नहीं होगी।

0
जोड़ा
ओह मैं समझा? मैं संपादित करूंगा।
जोड़ा लेखक christopher, स्रोत
एक सभ्य उत्तर के लिए 1+।
जोड़ा लेखक Hovercraft Full Of Eels, स्रोत
लगता है कि उपयोगकर्ता ए: ए 1 के साथ प्रतिस्थापित करना चाहता था?
जोड़ा लेखक user1766760, स्रोत

एक char बस यही है, एक एकल वर्ण। आप एक गुच्छा को एक साथ उद्धरण के साथ एक गुच्छा फेंक नहीं सकते हैं और उन्हें एक चार कहते हैं।

इसके बजाय स्ट्रिंग का उपयोग करें क्योंकि स्ट्रिंग क्या है लेकिन एक निश्चित क्रम में वर्णों का एक गुच्छा है। यदि आवश्यक हो तो सबस्ट्रिंग प्राप्त करें, और स्ट्रिंग # (...) या स्ट्रिंग # बराबर (...) या स्ट्रिंग # बराबर इग्नोरकेस ( ...)

0
जोड़ा