首页 > 解决方案 > Java问题-奇偶字母

问题描述

例如,我正在努力从用户输入中获取输出以仅显示奇数或偶数(如果是第CharAt(0) == 'w'一个)。

它是否通过“System.out.println(CharAt(0) + CharAt(2) + CharAt(4))”工作?

我正在使用 Scanner 项目来获取用户输入,并且已经有以下输入部分:

Scanner input = new Scanner(System.in);
System.out.print("Please enter a uncoded string: ");
String first = input.nextLine();
input.close();

if (first.charAt(0) == 'u') {
  first = first.toUpperCase();
} else if (first.charAt(0) == 'l') {
  first = first.toLowerCase();
} else if (first.charAt(0) == 'o') {
      first = first.charAt(0) + charAt(2) + charAt (4);
}

System.out.println("The decoded string is: " + first);

有没有办法像(0 +奇数)这样的公式?

标签: java

解决方案


我猜您正试图通过检查其前缀字符来“解码”“编码”字符串:

Scanner input = new Scanner(System.in);
System.out.print("Please enter a uncoded string: ");
String first = input.nextLine();
input.close();

if (first.charAt(0) == 'u') {
    first = first.toUpperCase();
} else if (first.charAt(0) == 'l') {
    first = first.toLowerCase();
} else if (first.charAt(0) == 'o') {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < first.length(); i = i + 2) {
        sb.append(first.charAt(i));
    }
    first = sb.toString();
} else if (first.charAt(0) == 'e') {
    StringBuilder sb = new StringBuilder();
    for (int i = 1; i < first.length(); i = i + 2) {
        sb.append(first.charAt(i));
    }
    first = sb.toString();
}
System.out.println("The decoded string is: " + first);

我不确定在前缀“o”的情况下是否希望此前缀包含在结果中。
编辑
如果您不喜欢 StringBuilder:

} else if (first.charAt(0) == 'o') {
    String str = "";
    for (int i = 0; i < first.length(); i = i + 2) {
        str += first.charAt(i);
    }
    first = str;
} else if (first.charAt(0) == 'e') {
    String str = "";
    for (int i = 1; i < first.length(); i = i + 2) {
        str += first.charAt(i);
    }
    first = str;
}

推荐阅读