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); ...
j
是一个字符,不是字符串。使用==
而不是equals
Java与Python和JavaScript不同。 charAt
不返回String
,而是返回char
(仅字符)。因此,您无法将其与String
进行比较。如果用单引号引起来的字符,则将是这样的char
:'a'
。另外,char
是原始类型,因此可以与==
进行比较。