【问题标题】:Android - Editing my String so each word starts with a capitalAndroid - 编辑我的字符串,使每个单词都以大写字母开头
【发布时间】:2012-01-17 16:39:39
【问题描述】:

我想知道是否有人可以为我提供一些代码或指向一个教程,它解释了如何转换我的字符串,以便每个单词都以大写字母开头。

我还想用斜体转换一个不同的字符串。

基本上,我的应用正在做的是从几个 EditText 框中获取数据,然后单击按钮通过意图被推送到下一页并连接成 1 个段落。因此,我假设我需要在初始页面上编辑我的字符串并确保它以相同的格式传递。

提前致谢

【问题讨论】:

  • 您可能需要检查此question,因为它与您的相似
  • “转换为斜体”部分是完全不同的东西。一个是字符串(从任何格式抽象出来的字符序列),另一个是格式化文本。可能您想修改某些 UI 小部件的字体属性以以斜体显示其文本。

标签: java android text text-formatting


【解决方案1】:

您可以使用Apache StringUtilscapitalize 方法将完成这项工作。

例如:

WordUtils.capitalize("i am FINE") = "I Am FINE"

WordUtils.capitalizeFully("i am FINE") = "I Am Fine"

【讨论】:

    【解决方案2】:

    这是一个简单的函数

    public static String capEachWord(String source){
            String result = "";
            String[] splitString = source.split(" ");
            for(String target : splitString){
                result
                        += Character.toUpperCase(target.charAt(0))
                        + target.substring(1) + " ";
            }
            return result.trim();
        }
    

    【讨论】:

      【解决方案3】:

      最简单的方法是使用简单的 Java 内置函数。

      尝试以下方法(方法名称可能不完全正确,我一时想不通):

      String label = Capitalize("this is my test string");    
      
      
      public String Capitalize(String testString)
      {
          String[] brokenString = testString.split(" ");
          String newString = "";
      
          for(String s : brokenString)
          {
              s.charAt(0) = s.charAt(0).toUpper();
              newString += s + " ";
          }
      
          return newString;
      }
      

      试试这个,让我知道它是否适合你。

      【讨论】:

        【解决方案4】:

        只需将
        android:inputType="textCapWords" 添加到布局 xml 中的 EditText 即可。
        这将使所有单词都以大写字母开头。

        【讨论】:

          【解决方案5】:

          字符串在 Java 中是不可变的,并且 String.charAt 返回一个值,而不是您可以设置的引用(如在 C++ 中)。 Pheonixblade9 将无法编译。这符合 Pheonixblade9 的建议,除了编译。

          public String capitalize(String testString) {
              String[] brokenString = testString.split(" ");
              String newString = "";
          
              for (String s : brokenString) {
                  char[] chars = s.toCharArray();
                  chars[0] = Character.toUpperCase(chars[0]);
                  newString = newString + new String(chars) + " ";
              }
          
              //the trim removes trailing whitespace
              return newString.trim();
          }
          

          【讨论】:

            【解决方案6】:
            String source = "hello good old world";
            StringBuilder res = new StringBuilder();
            
            String[] strArr = source.split(" ");
            for (String str : strArr) {
                char[] stringArray = str.trim().toCharArray();
                stringArray[0] = Character.toUpperCase(stringArray[0]);
                str = new String(stringArray);
            
                res.append(str).append(" ");
            }
            
            System.out.print("Result: " + res.toString().trim());
            

            【讨论】:

              猜你喜欢
              • 2012-06-22
              • 1970-01-01
              • 2016-10-22
              • 2022-01-22
              • 2021-03-12
              • 1970-01-01
              • 2015-10-18
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多