遍历一个字符串,然后使用.equals(Java)将结果与另一个字符串进行比较

问题描述 投票:0回答:2
import java.util.Scanner;

public class Main {

    public static void main(String[] args){

        Landscape landscape = new Landscape();

        Scanner keyboardScanner = new Scanner(System.in);

        System.out.println("Enter your terrain: ");

        String TerrainInput = keyboardScanner.nextLine();

        for (int i = 0; i < TerrainInput.length(); i++){

            char j = TerrainInput.charAt(i);

            if j.**equals(**"m") {
                //landscape.mountain(int [j+1])
            }

            if j.**equals**("f"){
                //landscape.flat(int [j+1])
            }
            if j.**equals**("h"){
                //landscape.hill(int [j+1])
            }
        }

    landscape.print();

程序应接收一些输入字符串,例如f3,m3,f2,m0,f4,h1,f1我的计划是遍历每个字符并检查其是否等于“ f,m或h”如果是,那么我将调用适当的方法,并通过使用找到的字母字符的索引+ 1来调用该方法,并使用“ f,m或h”之后的数字作为参数。

for (int i = 0; i < TerrainInput.length(); i++){
    char j = TerrainInput.charAt(i);

    if j.**equals(**"m") {
        //landscape.mountain(int [j+1])
    }
}

问题是.equals无法正常运行,它的意思是Cannot resolve method 'equals(java.lang.String)'

import java.util.Scanner;公共类Main {public static void main(String [] args){Landscape landscape = new Landscape();扫描仪keyboardScanner =新的Scanner(System.in); ...

java string if-statement intellij-idea string-comparison
2个回答
0
投票

j是一个字符,不是字符串。使用==而不是equals


0
投票

Java与Python和JavaScript不同。 charAt不返回String,而是返回char(仅字符)。因此,您无法将其与String进行比较。如果用单引号引起来的字符,则将是这样的char'a'。另外,char是原始类型,因此可以与==进行比较。

© www.soinside.com 2019 - 2024. All rights reserved.