【问题标题】:Iterating through a string and comparing result to another string using .equals (Java)遍历一个字符串并使用 .equals (Java) 将结果与另一个字符串进行比较
【发布时间】:2020-05-06 03:26:51
【问题描述】:
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” 如果是,那么我将调用适当的方法并使用“f、m 或 h”之后的数字作为参数,方法是使用找到的字母字符的索引 + 1 调用该方法。

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)'

【问题讨论】:

  • 如果帖子很糟糕,我深表歉意……我是这个网站的新手。
  • char 是原语,不是类对象

标签: java string if-statement intellij-idea string-comparison


【解决方案1】:

Java 不同于 Python 和 JavaScript。 charAt 不返回 String,它返回 char(仅是一个字符)。因此,您无法将其与String 进行比较。如果你用单引号写一个字符,那将是一个char,像这样:'a'。另外,char 是原始类型,所以可以和== 比较。

【讨论】:

    【解决方案2】:

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

    if (j == 'm')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-03
      • 1970-01-01
      • 2023-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-20
      相关资源
      最近更新 更多