Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 简单子串问题_Java_String_Methods_Substring - Fatal编程技术网

Java 简单子串问题

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

我的老师想让我们在控制台周围移动一个字母“o”。字母“o”已编码为显示在控制台屏幕的中央。我已经创建了movingRight和movingDown方法,但是我很难创建movingLeft和movingUp方法。这是我的密码:

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(…)
,它返回一个
字符串。