簡體   English   中英

Java中的多個字符串輸入長度

[英]Multiple String input lengths in Java

我正在寫一個關於音樂和弦的程序。 我希望用戶輸入AG或ag,但也可以是#或-(平),也可以是m(小)。 它正在運行,但是如果您輸入#m,則會得到

輸入音樂和弦名稱:A

我需要它來繼續閱讀if語句,以便如果輸入的是3個字符,則可以描述該char應該是什么。

我還沒有添加有關急件和平底鞋的部分。

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塊中的input 您需要為此設置一個局部變量,而不是將其重新分配為input

如果分配input的值capNote ,長度input將永遠是一個。

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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM