簡體   English   中英

Java-如何將Char []數組與字符串進行比較?

[英]Java - How to Compare Char[] Array with String?

我有一個問題,關於數組中的字符與特定輸入(字符串)的比較。

我似乎在它聲明的行上有問題: String [] oneRow =字母[i];

package MemoryGame;

導入java.util.Scanner;

公共類記憶{

/*
 * array list of the alphabet.
 */

char[] alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};

/*
 * Constructor
 */
public Memory(){

    /*
     * Scanner initiation for input end-user.
     */
    System.out.println("What is the first letter of you name? ");
    Scanner scan = new Scanner(System.in);
    String letter = scan.nextLine();
    String s = scan.nextLine();

    /*
     * Comparing Input with array
     */
    String[] matchedRow;
    for(int i=0; i<alphabet.length; i++)
    {           
        String[] oneRow = alphabet[i];

        if(oneRow[0].equals(letter))
        {
            matchedRow = oneRow;
            break;
        }
    }

    for(int i=0; i<matchedRow.length; i++)
    {
        System.out.println(matchedRow[i]);

    }
}

public static void main(String[] args) {
Memory memory = new Memory();   
}

Eclipse說:

類型不匹配:無法從char轉換為String []

謝謝你的幫助!

中號

您不能將單個字符分配給String數組。 您也無法將單個String分配給數組; 這部分與字符無關。

當然,您也不能直接將char分配給String,所以您可能想要這樣的東西:

String onerow = String.valueOf(alphabet[i]);

if(oneRow.equals(letter))

字符分配給String無效。 無論如何,您都可以使用串聯技巧來做到這一點,但是這很容易被黑客入侵:

String[] oneLetter = ""+alphabet[i];

更好的方法是檢查letter的長度為1 ,並且其唯一字符與alphabet[i]相匹配:

if (letter.length() == 1 && letter.charAt(0) == alphabet[i]) {
    matchedLetter = alphabet[i];
    break;
}

charString不兼容,因此String[]char[]不兼容。

alphabet[i]將返回一個char ,您可以通過構造一個新的char將其轉換為String ,例如:

char c = aplhabet[i];
String oneRow = String.valueOf(c);
if (oneRow.equals(letter)) { ... }

或者,你可以比較的第一個char輸入的Stringchar你把alphabet

char c = aplhabet[i];
if (letter.chartAt(0) == c) { ... }

暫無
暫無

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

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