【问题标题】:In Java, can I scan a string and store it as lowercase/uppercase characters regardless of the input在Java中,我可以扫描一个字符串并将其存储为小写/大写字符,而不管输入如何
【发布时间】:2015-09-21 03:02:21
【问题描述】:

我正在尝试编写一个程序,要求用户输入一个字符串,说明三个给定选项之一。选项有:小、中、大。无论用户输入的单词的大小写如何(例如,small、Medium、LaRgE),有没有办法让我可以将字符串存储到我的变量中,因为第一个字母是大写的,然后是所有小写字母。大小写字母,或者甚至只是小、中、大的小写/大写的任意组合,最终会相应地变成小、中或大?

【问题讨论】:

标签: java string java.util.scanner


【解决方案1】:

我认为您是在寻求一种方法来检查两个 Strings 的相等性,而不管它们的大小写如何,而不是真正改变它们的值。您正在寻找equalsIgnoreCase。根据 Oracle,

将此字符串与另一个字符串进行比较,忽略大小写。如果两个字符串的长度相同,并且两个字符串中的对应字符相等,忽略大小写,则认为两个字符串相等。

String myString = "hello";
System.out.println(myString.equalsIgnoreCase("HELLO")); //true
System.out.println(myString.equalsIgnoreCase("hElLo")); //true

【讨论】:

  • 谢谢,java新手,研究一下这个方法!
【解决方案2】:

是的。您可以使用charAt(0) 获取第一个字符,然后使用Character.toUpperCase(char) 将其大写。然后从索引1 中获取substring 并调用String.toLowerCase() 类似

String a = "smALL";
String out = Character.toUpperCase(a.charAt(0)) + a.substring(1).toLowerCase();
System.out.println(out);

假设您想要一个规范的表示。为了比较,您可能更喜欢将String.equalsIgnoreCase(String) 与类似的东西一起使用

if ("small".equalsIgnoreCase(a)) {
    // ...
}

这是Yoda conditions 的一个示例。如果你不喜欢它们,你可以使用类似的东西

if (a != null && a.equalsIgnoreCase("small")) {
    // ...
}

【讨论】:

    【解决方案3】:

    看看WordUtils。它有多种方法,例如 capitalize() , uncapitalize() 等,可以根据您的情况需要格式化字符串

    【讨论】:

      【解决方案4】:

      要向用户询问字符串,您可以执行以下操作:

        Scanner input = new Scanner(System.in);
        String userString = input.nextLine();
      

      然后格式化字符串,使第一个字母大写:

       String userString = name.substring(0,1).toUpperCase() + name.substring(1, name.length()).toLowerCase();
      

      有很多方法可以解决这个问题,我的解决方案只是其中之一。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-17
        • 2021-12-17
        • 2021-06-11
        • 2020-12-10
        相关资源
        最近更新 更多