簡體   English   中英

如何在Java中將由空格分隔的每個字符串的首字母大寫

[英]How to Capitalize the first letter of each String seperated by whitespace in java

好的,我已經編寫並解決了代碼。 我的問題是,當我在同一行上輸入兩個單詞時,得到的是我輸入的內容以及所需的解決方案。

我得到這個輸出。 在此處輸入圖片說明

我想要這個輸出。。。

                             Happy Thursday

下面是我的代碼:

import java.util.Scanner;

public class LetterCapitalize {

    String CapitalizeLetter(String str) {

        String[] words = str.split(" ");
        String string = " ";

        for(int i = 0; i < words.length; i++){
            char letter = Character.toUpperCase(words[i].charAt(0));
            string = " " + letter+ words[i].substring(1);
            str += string;
        }
        return str;
    }

    public static void main(String[] args) {
         Scanner  s = new Scanner(System.in);
         LetterCapitalize c = new LetterCapitalize();
         System.out.print(c. CapitalizeLetter(s.nextLine())); 
    }
}

以下可以解決它。將str重新初始化為空字符串。

  import java.util.Scanner;

 public class LetterCapitalize {

    String CapitalizeLetter(String str) {

    String[] words = str.split(" ");
    String string = " ";
   //re initialize to empty string
    str="";
    for(int i = 0; i < words.length; i++){
        char letter = Character.toUpperCase(words[i].charAt(0));
        string = " " + letter+ words[i].substring(1);
        str += string;
    }
    return str;
}

public static void main(String[] args) {
    Scanner  s = new Scanner(System.in);
     LetterCapitalize c = new LetterCapitalize();
     System.out.print(c. CapitalizeLetter(s.nextLine()));
}
   }

如果您可以使用外部庫,請嘗試在庫中capitalize

  1. str重置為空或使用新的字符串變量。 因為它已經包含輸入字符串。

     str = ""; 
  2. 不要在字母capitalization同時添加空間。 這樣,最終將在輸出的前面留出額外的空間。 當您的output string長度大於零時添加空格,這意味着它已經包含一些字符串。 這應該是for循環中的第一件事,否則,您將在字符串末尾獲得額外的空間。

     if (str.length() > 0) { str = str + " "; } 

這是代碼:

public class LetterCapitalize {
  String CapitalizeLetter(String str) {
    String[] words = str.split(" ");
    String string;
    str = "";
    for(int i = 0; i < words.length; i++) {
      if (str.length() > 0) {
        str = str + " ";
      }
      char letter = Character.toUpperCase(words[i].charAt(0));
      string = letter+ words[i].substring(1);
      str += string;
    }
    return str;
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM