2015-09-26 3 views
0

Это код, который я написал для подсчета количества пробелов, вкладок и строк новой строки в строке, введенной пользователем (новая строка отмечена полной остановкой («»), и я делаю это без обработки файлов. Этот код бросает строку из исключения ограничивает во время выполнения, и я не могу понять, почему. Пожалуйста, помогите.Подсчет пробелов, вкладок и новых строк в java без обработки файлов

import java.io.*; 
class Specialchars 
{ 
    public static void main(String arg[]) throws IOException 
    { 
     BufferedReader obj=new BufferedReader(new InputStreamReader(System.in)); 
     System.out.println("Enter one or more lines"); 
     String s=obj.readLine(); 

     int count1=0,count2=0,count3=0; 

     for(int i=0; i<=s.length(); i++) 
     { 
      char ch=s.charAt(i); 
      if(ch==' ') 
      { 
       count1++; 
      } 
      else  
      if(ch=='\t') 
      { 
       count2++; 
      } 
      else  
      if(ch=='.') 
      { 
       count3++; 
      } 
     } 
     System.out.println("The number of blank spaces is = "+count1); 
     System.out.println("The number of tabs is = "+count2); 
     System.out.println("The number of new lines is = "+count3); 
    } 
} 

ответ

2

вам следует использовать

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

вместо

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

строки как массивы enumarated начиная с 0 так что последний индекс длина() - 1