【问题标题】:Java - Convert an input string to Uppercase first letter and Lowercase other letters [closed]Java - 将输入字符串转换为大写首字母和小写其他字母[关闭]
【发布时间】:2015-06-17 01:32:42
【问题描述】:

我知道以前有过类似的问题,但它实际上并没有解决我的问题。我只想获取代表员工姓名的字符串输入,并确保输入是这种形式的“姓名”。不是“名”,不是“名”。所以我尝试这样做,但输出不起作用。所以这里是代码:

Scanner scanner = new Scanner(System.in);
String ename; // input string
System.out.println("Enter Employee Name : (Type -Name-, not -name-, not -NAME-!!!");
ename = scanner.nextLine(); // read the string input
char[] Transform = new char[ename.length()]; // this array will contain the string split in characters
for (int i = 0;i < ename.length(); i++)
{
    Transform[i] = ename.charAt(i);  // Split the input to a char array
}
Transform[0] = Character.toUpperCase(Transform[0]); // First Letter Always Capital
for (int i = 1;i < ename.length(); i++)
{
    Transform[i] = Character.toLowerCase(Transform[0]); // Other letters small
}
String name = new String(Transform); // convert the array to a new String variable
System.out.println("NEW STRING : " + name );

输出:

【问题讨论】:

  • 这一行Transform[i] = Character.toLowerCase(Transform[0]); 应该是Transform[i] = Character.toLowerCase(Transform[i]);。关闭简单的错字。
  • 我已经连续编程了 3 个小时,它就在我的眼前,我只是看不到它!
  • 请遵守 Java 命名约定。 PascalCase 为类保留,变量在camelCase始终。不这样做不仅会使其他开发人员感到困惑,而且还会破坏 SO 上突出显示的语法。
  • @BoristheSpider 我不明白你所说的 PascalCase 和 camelcase 是什么意思
  • 看看我写它们的方式。这不是火箭科学。此外,还有一个叫做谷歌的东西。看来还不错。

标签: java string char uppercase lowercase


【解决方案1】:

需要将i循环中的Statement改为

 Transform[i] = Character.toLowerCase(Transform[i]); 

添加 Transform[i] 而不是 Transform[0],因为您将相同的第一个字符一次又一次地插入到数组中

Demo

【讨论】:

    【解决方案2】:

    我不知道你为什么需要这些代码。

    例如:

    char[] transform = new char[ename.length()];
    for (int i = 0; i < ename.length(); i++) {
        transform[i] = ename.charAt(i);
    }
    

    相同
    char[] transform = ename.toCharArray();
    

    你的整个代码可以重写为:

    public static String capitalise(final String name) {
        return name.substring(0, 1).toUpperCase() + name.substring(1).toLowerCase();
    }
    

    测试用例:

    public static void main(String[] args) throws Exception {
        System.out.println(capitalise("Name"));
        System.out.println(capitalise("name"));
        System.out.println(capitalise("NamE"));
        System.out.println(capitalise("NAMe"));
    }
    

    输出:

    Name
    Name
    Name
    Naae
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-04
      • 1970-01-01
      • 2015-07-28
      • 1970-01-01
      • 1970-01-01
      • 2019-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多