gpt4 book ai didi

java - Java中的多个字符串输入长度

转载 作者:行者123 更新时间:2023-12-02 11:24:00 25 4
gpt4 key购买 nike

我正在编写一个关于音乐和弦的程序。我希望用户输入 A-G 或 a-g,但也可以是 # 或 -(降号),也可以是 m(小号)。它正在运行,但如果你输入 a#m,你会得到

输入音乐钢琴和弦名称:

我需要它继续读取 if 语句,这样如果输入是 3 个字符,我就可以描述该字符应该是什么。

我还没有添加有关升音和平音的部分。

import java.util.Scanner;
public class Hwk9 {
public static void main(String[] args) {
String chord;
Scanner stdin = new Scanner(System.in);
System.out.println("Enter a musical piano chord name: ");
chord = stdin.nextLine();
String finalChord = validChord(chord);

System.out.println(finalChord);
}

public static String validChord(String input) {
if (input.length() > 3 && input.length() < 1) {
input = "Invalid chord";
}

char note = input.charAt(0);
char capNote = chordCapitalize(note);

if (capNote == 'A') {
input = capNote + "";
}
else if (capNote == 'B') {
input = capNote + "";
}
else if (capNote == 'C') {
input = capNote + "";
}
else if (capNote == 'D') {
input = capNote + "";
}
else if (capNote == 'E') {
input = capNote + "";
}
else if (capNote == 'F') {
input = capNote + "";
}
else if (capNote == 'G') {
input = capNote + "";
}
else {
input = "Invalid chord";
}

if (input.length() == 3) { *<<<<<<This section is not going through*
char minor = input.charAt(2);
if (minor == 'm') {
input = capNote + "" + minor;
}
else {
input = "Invalid chord";
}
}

return input;
}

public static char chordCapitalize(char input) {
String note = input + "";
String caps = note.toUpperCase();
char capNote = caps.charAt(0);
return capNote;
}
}

最佳答案

问题是您正在将大写和弦分配回 if block 中的 input 。您需要有一个局部变量,并且将其重新分配给输入

如果将 input 指定为 capNote 的值,则 input 的长度将始终为 1。

String result;
if (capNote == 'A') {
result = capNote + "";
}
else if (capNote == 'B') {
result = capNote + "";
}
//Rest of code

if (input.length() == 3) {
char minor = input.charAt(2);
if (minor == 'm') {
result = capNote + "" + minor;
}
else {
result = "Invalid chord";
}
}
return result;

关于java - Java中的多个字符串输入长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49726865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com