简单的子串问题

时间:2014-07-23 23:42:10

标签: 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";
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和从原始字符串字母中移出子字符串的问题。它给出了一个错误('方法删除(char)未定义类型String'),我不确定需要做什么。

有谁知道如何解决这个问题? 提前感谢所有回复。

1 个答案:

答案 0 :(得分:1)

字符串没有remove方法。但是,有replace方法可以执行您想要的操作。请注意,它不会修改字符串对象,但会返回一个新字符串。所以你会这样做:

letter = letter.replace(whenmovingup, "");

请注意replace有两个略有不同的重载,它们会根据您是否要求它删除Stringchar来执行不同的操作。 replace(String, String)方法替换一个出现,而replace(char, char)替换所有出现。您只想要一个,因此将whenmovingleft声明为String并对其进行适当的初始化。