मैं प्रत्येक चार को एक स्ट्रिंग में गिनना चाहता हूं। हर चार एक काउंटर करने के लिए 1 कहते हैं और टैब 4.स्ट्रिंग में वर्णों की गणना करना टैब (' t') के साथ काम नहीं करता है। क्या मैं गलत तरीकों का उपयोग कर रहा हूं?
जोड़ना चाहिए मेरे कोड है:
int counter = 0;
for(char c : myString.toCharArray()) {
if("\t".equals(""+c)) {
counter = counter + 4;
} else {
counter++;
}
}
मैं के साथ 4. लाइन्स करने के लिए एक पाठ संपादक में एक बहुत अलग लाइनों और सेट टैब अंतरिक्ष बनाया है वर्ण और संख्या कोई समस्या नहीं है। जैसे ही मैं परिणाम के बीच कुछ टैब जोड़ता हूं, हमेशा 1 से अधिक होता है। मेरा संपादक कहता है कि रेखा 100 वर्ण लंबी है लेकिन मेरा कोड 101 मायने रखता है। इससे कोई फर्क नहीं पड़ता कि लाइन में 2 या 20 टैब हैं। यह हमेशा 1 बहुत अधिक मायने रखता है।
कोई विचार या बेहतर समाधान? शायद इस्तेमाल किए गए तरीकों से इस व्यवहार का कारण बनता है?
संपादित करें: मेरे परीक्षण लाइनों:
Line 12: 121 characters ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
Line 13: 120 characters dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
Line 14: 119 characters with tabs kkk
Line 15: 120 characters with tabs lkkk
मेरे कोड 'लाइन 13' के लिए और के लिए 'लाइन 12' वास्तव में 121 पात्रों 120 गिना जाता है। 'लाइन 14' के लिए यह 120 और 'लाइन 15' 121 वर्णों के लिए गिना जाता है। मुझे कोई जानकारी नहीं है की क्यों। रेखा-फीड अनदेखा हो जाते हैं।
आप 'myString' में कैसे पढ़ रहे हैं? क्या इसमें लाइन-फ़ीड्स शामिल होंगे? – pathfinderelite
क्या आप कृपया स्ट्रिंग प्रदान कर रहे हैं जो आप उपयोग कर रहे हैं :) – sparsh610
मैंने अभी एक त्वरित परीक्षण किया है, और यह मेरे लिए काम करता है। नोट मुझे एक बंद ब्रेस जोड़ना पड़ा: 'अगर ("\ t" .equals ("" + c)) ' –