在Java中,如何将自动输入的首字母大写?

时间:2019-04-06 03:34:43

标签: java

我正在尝试让自动平地机/编译器完成我的任务,以便为我提供与自动输入所需的完全匹配的分数。这是我的输出: 输入播放列表的标题:DANCE LIST PLAYLIST MENU

这是预期的输出: 输入播放列表的标题:舞蹈列表PLAYLIST MENU

这是我的代码页。当提交给ZyBooks时,此代码中确实还有其他问题。我可以稍后再发布。谢谢您的帮助。

public class SongEntry {

   private String uniqueID;

   private String songName;

   private String artistName;

   private int songLength;

   SongEntry nextNode;

   SongEntry() {

       uniqueID = "";

       songName = "";

       artistName = "";

       songLength = 0;

       nextNode = null;

   }

   SongEntry(String uniqueID, String songName, String artistName, int songLength) {

       this.uniqueID = uniqueID;

       this.songName = songName;

       this.songLength = songLength;

       this.artistName = artistName;

       this.nextNode = null;

   }

   public void insertAfter(SongEntry entry) {

       SongEntry entries = this;

       while (entries.nextNode != null) {

           entries = entries.nextNode;

       }

       entries.nextNode = entry;

   }

   public void setNext(SongEntry entry) {

       this.nextNode = entry;

   }

   public String getID() {

       return this.uniqueID;

   }

   public String getSongName() {

       return this.songName;

   }

   public String getArtistName() {

       return this.artistName;

   }

   public int getSongLength() {

       return this.songLength;

   }

   public SongEntry getNext() {

       return this.nextNode;

   }

   public void printPlaylistSongs() {

       System.out.println("Unique ID: " + getID());

       System.out.println("Song Name: " + getSongName());

       System.out.println("Artist Name: " + getArtistName());

       System.out.println("Song Length(in seconds): " + getSongLength());

   }

   public void setSongName(String songName2) {

       this.songName = songName2;

   }

   public void setUniqueID(String id) {

       this.uniqueID = id;

   }

   public void setArtistName(String artistName2) {

       this.artistName = artistName2;

   }

   public void setSongLength(int songLength2) {

       this.songLength = songLength2;

   }

}
import java.util.Scanner;

public class Playlist {

   public static Scanner sc = new Scanner(System.in);

   public static Scanner scInt = new Scanner(System.in);

   public static SongEntry headSong = new SongEntry();

   public static SongEntry tailSong = new SongEntry();

   public static SongEntry allEntries;

   public static int numberOfNodes = 0;

   public static void printMenu(String playlistTitle)

   {

   System.out.println("\n"+playlistTitle.toUpperCase()+" PLAYLIST MENU");

   System.out.println("a - Add song\nd - Remove song\nc - Change position of song\ns - Output songs by specific artist");

   System.out.println("t - Output total time of playlist (in seconds)\no - Output full playlist\nq - Quit");

   System.out.println("\nChoose an option:");

   String option = sc.next();

   boolean isEnter = option.equals("a") || option.equals("d") || option.equals("c") || option.equals("s") || option.equals("t") || option.equals("o") || option.equals("q");

   if(isEnter)

   {

   switch(option.charAt(0))

   {

   case 'a': addSong();

   printMenu(playlistTitle);

   break;

   case 'd': allEntries = removeSong(allEntries);

   printMenu(playlistTitle);

   break;

   case 'c': allEntries = changeSongPosition(allEntries);

   printMenu(playlistTitle);

   break;

   case 's': songsBySpecificArtist(allEntries);

   printMenu(playlistTitle);

   break;

   case 't': totalTimeofPlaylist(allEntries);

   printMenu(playlistTitle);

   break;

   case 'o': outputFullPlaylist(allEntries);

   printMenu(playlistTitle);

   break;

   case 'q': break;

   }

   }

   else

   {

   System.out.println("Invalid Choice !");

   printMenu(playlistTitle);

   }

   }

   public static void outputFullPlaylist(SongEntry entries)

   {

   int counter = 1;

   if(entries != null)

   {

   System.out.println(counter+".");

   entries.printPlaylistSongs(); // head node

   counter++;

   while(entries.nextNode != null) // all the remaining nodes

   {

   entries = entries.nextNode;

   System.out.println(counter+".");

   entries.printPlaylistSongs();

   counter++;

   }

   }

   else

   {

       System.out.println("Playlist is empty");

   }

   }

   public static void addSong()

   {

   sc = new Scanner(System.in);

   System.out.println("ADD SONG");

   System.out.println("Enter song's Unique ID: ");

   String songID = sc.next();

   sc = new Scanner(System.in);

   System.out.println("Enter song's name: ");

   String songname = sc.nextLine();

   sc = new Scanner(System.in);

   System.out.println("Enter artist's name: ");

   String artistName = sc.nextLine();

   System.out.println("Enter song's length(in seconds): ");

   int songlength = scInt.nextInt();

   SongEntry entry = new SongEntry(songID, songname, artistName, songlength);

   if(allEntries == null)

   {

   headSong = entry; // this is the head

   allEntries = entry;

   tailSong = entry; // this is the tail

   numberOfNodes++;

   }

   else

   {

       allEntries.insertAfter(entry);

   tailSong = entry;

   numberOfNodes++;

   }

   }

   public static SongEntry removeSong(SongEntry entries)

   {

   System.out.println("Enter the song's unique ID: ");

   String id = sc.next();

   SongEntry newEntry = null, entry=null;

   int counter = 0;

   while(entries != null)

   {

       if(counter!=0)

       {

           newEntry.nextNode = null;

           newEntry = newEntry.nextNode;

       }

       if(!entries.getID().equals(id))

       {

           newEntry = new SongEntry();

           newEntry.setUniqueID(entries.getID());

           newEntry.setSongName(entries.getSongName());

           newEntry.setArtistName(entries.getArtistName());

           newEntry.setSongLength(entries.getSongLength());

           if(entry == null)

               entry = newEntry;

           else

               entry.insertAfter(newEntry);

           counter++;

       }

       else

       {

           System.out.println(entries.getSongName()+" removed");

           numberOfNodes--;

       }

       entries = entries.nextNode;

   }

   return entry;

   }

   public static SongEntry changeSongPosition(SongEntry entries)

   {

   System.out.println("CHANGE POSITION OF SONG");

   System.out.println("ENTER song's current position: ");

   int currentPos = scInt.nextInt();

   System.out.println("Enter new position of song: ");

   int newPos = scInt.nextInt();

   SongEntry currentPosEntry = null, entry = null, newPosEntry = null, returnEntry = null;

   entry = entries;

   int counter = 1;

// System.out.println("Number of nodes: " + numberOfNodes);

   if(newPos<1)

       newPos = 1;

   else if(newPos>numberOfNodes)

       newPos = numberOfNodes;

   System.out.println("cuurent pos: "+currentPos);

   System.out.println("new pos: "+newPos);

   for(int i=1; i<=numberOfNodes; i++)

   {

      if(i==currentPos)

       currentPosEntry = entries;

      else if(i==newPos)

          newPosEntry = entries;

      else

          entries = entries.nextNode;

   }

// System.out.println("After for loop");

   //System.out.println("Current song details" ); currentPosEntry.printPlaylistSongs();

// System.out.println("New song details"); newPosEntry.printPlaylistSongs();

   entries = entry;

   while(counter <= numberOfNodes+1)

   {

       if(counter == currentPos) // we need to adjust the current position

       {

           entries = entries.nextNode;

           if(entries !=null)

           {

           entry = new SongEntry(entries.getID(), entries.getSongName(), entries.getArtistName(), entries.getSongLength());

           if(returnEntry == null)

               returnEntry = entry;

           else

               returnEntry.insertAfter(entry);

           entries = entries.nextNode;

           }

           counter++;

       }

       else if(counter == newPos)

       {

           entry = currentPosEntry;

           entry.nextNode = null;

           if(returnEntry == null)

               returnEntry = entry;

           else

               returnEntry.insertAfter(entry);

           counter++;

       }

       else

       {

           if(entries !=null)

           {

           entry = new SongEntry(entries.getID(), entries.getSongName(), entries.getArtistName(), entries.getSongLength());

           if(returnEntry == null)

               returnEntry = entry;

           else

               returnEntry.insertAfter(entry);

           entries = entries.nextNode;

           }

           counter++;

       }

   }

return returnEntry;

   }

   public static void totalTimeofPlaylist(SongEntry entries)

   {

   System.out.println("OUTPUT TOTAL TIME OF PLAYLIST (IN SECONDS)");

   int totalSeconds = entries.getSongLength();

   entries = entries.nextNode;

   while(entries != null)

   {

   totalSeconds += entries.getSongLength();

   entries = entries.nextNode;

   }

   System.out.println("Total Time: "+totalSeconds+" seconds");

   }

   public static void songsBySpecificArtist(SongEntry entries)

   {

   sc = new Scanner(System.in);

   System.out.println("OUTPUT SONGS BY SPECIFIC ARTIST");

   System.out.println("Enter artist's name: ");

   String artistname = sc.nextLine();

   while(entries != null)

   {

   if(entries.getArtistName().equals(artistname))

   {

   entries.printPlaylistSongs();

   }

   entries = entries.nextNode;

   }

   }

   /**

   * @param args

   */

   public static void main(String[] args) {

   System.out.println("Enter playlist's title:");

   sc = new Scanner(System.in);

   String title = sc.nextLine();

   printMenu(title);

   }

}

1 个答案:

答案 0 :(得分:0)

您的问题在于toUppperCase()会大写整个字符串。

public static String capitalizeWord(String str){  
    String words[]=str.split("\\s");  
    String capitalizeWord="";  
    for(String w:words){  
        String first=w.substring(0,1);  
        String afterfirst=w.substring(1);  
        capitalizeWord+=first.toUpperCase()+afterfirst+" ";  
    }  
    return capitalizeWord.trim();  
} 

要打印,您可以这样做:

//to ensure all other letters are lowercase
playlistTitle.toLowerCase();
//to capitalize first letters
System.out.println("\n"+ capitalizeWord(playlistTitle) +" PLAYLIST MENU");
https://www.javatpoint.com/java-program-to-capitalize-each-word-in-string

找到

capitalizeWord()