Java 简单子串问题
我的老师想让我们在控制台周围移动一个字母“o”。字母“o”已编码为显示在控制台屏幕的中央。我已经创建了movingRight和movingDown方法,但是我很难创建movingLeft和movingUp方法。这是我的密码:Java 简单子串问题,java,string,methods,substring,Java,String,Methods,Substring,我的老师想让我们在控制台周围移动一个字母“o”。字母“o”已编码为显示在控制台屏幕的中央。我已经创建了movingRight和movingDown方法,但是我很难创建movingLeft和movingUp方法。这是我的密码: import java.util.Scanner; public class Main { static String letter = "\n\n\n\n
import java.util.Scanner;
public class Main {
static String letter = "\n\n\n\n O";
String whenmovingup = letter.substring(0, 1);
char whenmovingleft = letter.charAt(letter.length() - 2);
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print(letter);
input.nextLine();
if (input.equals("left")) {
movingLeft();
}
if (input.equals("right")) {
movingRight();
}
if (input.equals("up")) {
movingUp();
}
if (input.equals("down")) {
movingDown();
}
}
public static void movingRight(){
letter = " " + letter;
}
public static void movingDown(){
letter = "\n" + letter;
}
public static void movingLeft(){
letter.remove(whenmovingleft);
}
public static void movingUp(){
letter.remove(whenmovingup);
}
}
我在从原始字符串字母中删除whenmovingfeft和whenmovingup子字符串时遇到问题。它给出了一个错误(“类型字符串的方法remove(char)未定义”),我不确定需要做什么
有人知道如何解决这个问题吗?
提前感谢您的所有回复。字符串没有
删除方法。但是,有一种replace
方法可以满足您的需要。请注意,它不会修改string对象,但会返回一个新字符串。所以你会这样做:
letter = letter.replace(whenmovingup, "");
请注意,replace
有两个稍有不同的重载,根据您是要求它删除字符串
还是char
执行不同的操作。replace(String,String)
方法替换一个匹配项,而replace(char,char)
替换所有匹配项。您只需要一个,所以在向左移动时将声明为字符串
,并对其进行适当的初始化。“它给了我错误”-您到底得到了什么错误?请将错误消息编辑到您的问题中。谢谢您的帮助Greg。弹出窗口告诉我,这是一种无效的使用字符串类型的方法。'The method remove(char)对于类型字符串是未定义的。'The method remove
对于字符串
s没有方法。如果要从字符串
中删除一个字符,并且知道要删除的字符的位置,则基本上需要使用子字符串
,一次或两次。现在出现新错误。”类型不匹配:无法从字符转换为字符串“每当我尝试将whenmovingup声明更改为字符串时,我都会收到以下错误消息:“类型不匹配:无法从字符转换为字符串”是的,正如我提到的,您必须使用字符串而不是字符来适当初始化它。使用字符串
成功初始化了whenmovingup
,因此对whenmovingleft
执行类似操作。是否有.stringat函数?但是,如果我重写此声明,则会出现与以前相同的错误。正如在上面的一行中一样,使用字母.substring(…)
,它返回一个字符串。