Her karakter dizisini bir String'de saymak istiyorum. Her karakter bir sayaç 1 ekler ve sekmeler Benim kodudur 4.Dize'de chars sayma, sekmelerle (' t') çalışmaz. Yanlış yöntemler kullanıyor muyum?
eklemek gerekir: Birlikte 4. Lines bir metin editörü çok farklı çizgiler ve set sekme alanı yaptık
int counter = 0;
for(char c : myString.toCharArray()) {
if("\t".equals(""+c)) {
counter = counter + 4;
} else {
counter++;
}
}
chars ve sayılar sorun değil. Sonuç arasında bir kaç sekme eklediğimde her zaman 1'den büyüktür. Editörüm satırın 100 karakter uzunluğunda olduğunu ancak kodumun 101 olduğunu söylüyor. Bir satırda 2 veya 20 sekme olup olmadığı farketmez. Her zaman çok fazla 1 sayar.
Herhangi bir fikir veya daha iyi çözümler? Belki kullanılan yöntemler bu davranışa neden olur?
DÜZENLEME: Benim test hatları:
Line 12: 121 characters ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
Line 13: 120 characters dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
Line 14: 119 characters with tabs kkk
Line 15: 120 characters with tabs lkkk
Kodum 'Satır 13' için tam 121 'Satır 12' karakterleri ve 120 sayar. 'Line 14' için 120 ve 'Line 15' 121 karakterleri sayar. Neden olduğuna dair hiçbir fikrim yok. satır beslemeleri yok sayılır. Basit dize için
'myString' içinde nasıl okuyorsunuz? Satır besleme içerir mi? – pathfinderelite
Kullanmakta olduğunuz String'i sağlayabiliyor musunuz? :) – sparsh610
Sadece hızlı bir test yaptım ve benim için çalıştı. Not Bir kapanış ayracı eklemek zorunda kaldım: 'if (" \ t ".equals (" "+ c))' –