【问题标题】:Uppercase or Lowercase a specific character in a word "Java"大写或小写单词“Java”中的特定字符
【发布时间】:2016-04-04 22:16:48
【问题描述】:

我已经研究了大多数问题,但我找不到如何在单词中大写或小写特定字符。

例子:

String name = "Robert"

如果我想将“b”设为大写,其余小写,如何将首字母设为大写,其余小写?

像“约翰”>>输出>>“约翰”...

我有toUppercase()toLowercase()。他们转换整个文本。

我也尝试包含charAt,但从未与我合作。

【问题讨论】:

    标签: java string uppercase lowercase


    【解决方案1】:
    //Try this...
    
    String str = "Robert";
    
    for (int i = 0; i < str.length(); i++) {
        int aChar = str.charAt(i);
    
        // you can directly use character instead of ascii codes
        if (aChar == 'b') {
            aChar = aChar - 32;
        } else if (aChar >= 'A' && aChar <= 'Z') {
            aChar += 32 ;
        }
    
        System.out.print((char) aChar);
    }
    

    /*
    输出将是 roBert

    */

    【讨论】:

    • 您需要检查输入字符的 ASCII 值。
    • 您需要检查输入字符的 ASCII 值。在上面的示例中,我检查了从 a 到 z(96 到 123)的 ascii 值,并且我检查了是否有任何字符 ascii 值匹配到 97(char 'a' 的 ASCII 值)并将该字符 'a' 转换为 'A' 通过奉献/分钟 32.
    【解决方案2】:

    您可以使用toCharArray() 将第一个字母大写,如下所示:

    String name = "robert";
    
    // Convert String to char array.
    char[] arr = name.toCharArray();
    
    // Modify first element in array.
    arr[0] = Character.toUpperCase(arr[0]);
    String str = new String(arr);
    System.out.println(str);
    

    输出:

    Robert
    

    你想让“b”大写,其余小写如下:

    // Convert String to char array.
    char[] arr2 = name.toCharArray();
    
    // Modify the third element in array.
    arr2[2] = Character.toUpperCase(arr2[2]);
    String str2 = new String(arr2);
    System.out.println(str2);
    

    输出:

    roBert
    

    【讨论】:

      【解决方案3】:

      首字母大写的函数

      private String capitalize(String str) {
          return Character.toUpperCase(str.charAt(0)) + str.substring(1);
      }
      


      将任意字母大写的函数

      private String replaceCharWithUpperCase(char letterToCapitalize, String str)
      {
          return str.replaceAll(letterToCapitalize, Character.toUpperCase(letterToCapitalize));
      }
      

      然后你可以像这样使用以前的功能:

      String a = "JOHN";
      a = capitalize(a.toLowerCase());
      // now a = John.
      
      String b = "ROBERT";
      a = replaceCharWithUpperCase('b', a.toLowerCase());
      // now a = roBert.
      

      【讨论】:

        【解决方案4】:

        我不一定会使用“test.substring(2, 3).toLowerCase()”。 'Character.valueOf(test.charAt(2)).toUpperCase()' 有效。此外,'test.substring(0, 3)' 是错误的;它应该是'test.substring(0, 2)'。

        【讨论】:

          【解决方案5】:

          您需要获取您的字符串,获取您想要大写或小写的特定字符的子字符串,然后从中构建一个新字符串。

          例子

          String test = "JoHn"; //make the H lowercase
          test = test.substring(0,2) + test.substring(2,3).toLowercase() + test.substring(3);
          

          第一个子字符串获取所需点之前的所有字符,第二个子字符串获取所需字符并将其小写,最后一个子字符串获取字符串的其余部分

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-08-06
            • 1970-01-01
            • 2020-11-18
            • 1970-01-01
            • 2015-02-10
            • 2015-07-18
            • 2021-11-30
            • 1970-01-01
            相关资源
            最近更新 更多