【问题标题】:Capitalize a single character in JavaJava中的单个字符大写
【发布时间】:2018-09-13 12:41:14
【问题描述】:

我想从键盘上读取一个字符。如果是大写字母,则将其转换为小写,反之亦然。

这是我的代码:

import java.util.Scanner;

public class Nico4
{
    public static void main(String[] args)
    {
    char letra;
    boolean mayuscula;

    Scanner in=new Scanner(System.in);
    System.out.println("Ingrese una letra: ");
    letra=in.next().charAt(0);
    mayuscula=Character.isUpperCase(letra);
    if (mayuscula==true) letra=Character.toLowerCase(letra);
    else letra=Character.toUpperCase(letra);
    System.out.println(+letra);
    }
}

但我没有得到正确的答案。如果我输入“A”,它会返回 97,但我想要“a”。我做错了什么?

【问题讨论】:

  • 如果要打印letra,为什么要打印+letra
  • 你得到 97 的原因是它是 'a' 的 ASCII 值。由于您在 letra 中引入了 + 号,因此编译器会将其视为整数。

标签: java character uppercase lowercase


【解决方案1】:

示例代码:

public class CaptLetter{
public static void main(String args[]) {
    String message = "my message";
    message = Character.toUpperCase(message.charAt(0)) + message.substring(1);
    System.out.println(message); //result like "My message"
    System.out.println(upperCaseWords(sentence)); //result like "Hi Chandru How Are You" 
}

static String sentence = "Hi chandru how are you";
public static String upperCaseWords(String sentence) {
    String words[] = sentence.replaceAll("\\s+", " ").trim().split(" ");
    String newSentence = "";
    for (String word: words) {
        for (int i = 0; i < word.length(); i++)
        newSentence = newSentence + ((i == 0) ? word.substring(i, i + 1).toUpperCase() : (i != word.length() - 1) ? word.substring(i, i + 1).toLowerCase() : word.substring(i, i + 1).toLowerCase().toLowerCase() + " ");
    }

    return newSentence;
}}

结果:

我的留言

嗨,钱德鲁,你好吗

【讨论】:

    【解决方案2】:

    输出letra时去掉+

        System.out.println(letra);
    

    【讨论】:

      猜你喜欢
      • 2016-04-04
      • 1970-01-01
      • 2014-03-01
      • 2020-09-29
      • 2011-01-20
      • 1970-01-01
      • 2013-11-28
      • 2012-05-12
      • 1970-01-01
      相关资源
      最近更新 更多