2017-01-12 2 views
-2

То, что я пытаюсь сделать, очень элементарно. Пользователь должен ввести имя, и программа печатает только инициалы имени, за исключением последнего слова.Использование charAt в программе

Например:

input - "Mansha Mannan UL Haque" 
output - "M.M.U.Haque" 

Программа выглядит следующим образом, но он не компилируется.

class joke 
{ 
    public static void main(String str) 
    { 
     String alter=" "+str; 
     int n=alter.length(); 
     for(int i=0;i<=n;i++) 
     { 
      char f=alter.charAt(i); 
      if (f.compareTo(" ")>0) 
      { 
       System.out.println(alter.charAt(i+1)); 
      } 
     } 
    } 
} 

Показанная ошибка: char не может быть разыменован.

+0

Что такое Вы получаете при компиляции? (Добавить информацию к вопросу) –

+0

f не является строкой. его символ. поэтому вы не можете использовать compareTo() – thanga

+0

, пожалуйста, правильно отформатируйте свой код. – Moira

ответ

0

Разделите строку ввода в строковый массив, затем получите доступ к каждому слову и распечатайте его первый символ, для последнего слова напечатайте его целиком.

class joke 
{ 
public static void main(String[] args) 
{ 
    Scanner sc = new Scanner(System.in); 
    String alter=sc.nextLine(); //take input from user 
    String arr[] = alter.split(" "); 
    int n=arr.length(); //total words in user string 
    for(int i=0;i<n;i++) 
    { 

     if(i==n-1){ //if last word 
      System.out.print(arr[i]); 
     } 
     else{ 
      System.out.print(arr[i].charAt(0)+". "); 
     } 
    } 
} 

}

0

Это должно сделать трюк

в этом случае name будет ваш вклад

String name = "Mansha Mannan UL Haque"; 
    String[] nameArray = name.split(" "); 
    String newName = ""; 
    for(int i = 0; i < nameArray.length; i++) 
    { 
     if(i != nameArray.length -1) 
     { 
      newName += nameArray[i].substring(0, 1) + "."; 
     } 
     else 
     { 
      newName += nameArray[i]; 
     } 
    } 

и вы должны также сделать ваш класс joke общественности и изменить String str к String[] args

Смежные вопросы