【问题标题】:how to remove a string from a code using methods, arrays and loops?如何使用方法、数组和循环从代码中删除字符串?
【发布时间】:2020-09-20 20:03:48
【问题描述】:

我编写了一个代码,使用“方法”、“数组”和“循环”从“字符串文本”中删除符号和字符,所有内容都成功构建。

但是,当我尝试在实际的字符串文本上测试它时,它没有运行。有人澄清我做错了什么。这是代码:

public static String remove(String text, char symbol){
    String a= " ";
    for(int i=1; i<text.length();i++){
        char letter=text.charAt(i);
        if(letter !=symbol){
            a+=letter;
        }
    }
    return a;
}

【问题讨论】:

  • 我请了多位教授帮忙,但他们也不知道这很有趣
  • 正是我问的原因。
  • “它没有运行”是什么意思?它没有被调用(在这种情况下,客户端代码会更重要)?它抛出异常(哪一个)?它返回一个意想不到的结果(哪一个以及使用什么输入)?
  • 假设客户端写了一个文本,例如 // String text= "helloxxxoooworld" // 客户端想要删除 x 和 o,所以它变成 // "hello world" //我为此写了一个代码,但它没有应用
  • 再说一次,“它没有应用”是什么意思?

标签: java loops methods


【解决方案1】:

你的代码有几个问题:

  1. a = " " 似乎不正确,除非您想在结果字符串的开头有一个空格。
  2. for 循环中的迭代从i = 1 开始。这也不正确,因为这样你就不会处理字符串中的第一个字母。

经过修正且有效的解决方案如下所示:

public class RemoveLetter {
    public static void main(String[] args) {
        System.out.println(remove("Hello World", 'o')); 
    }
    public static String remove(String text, char symbol){
        String a= "";
        for(int i = 0; i < text.length(); i++){
            char letter = text.charAt(i);
            if(letter != symbol) {
                a += letter;
            }
        }
        return a;
    }
}

这个例子会给出输出Hell Wrld,这当然是正确的。

编辑要删除多个字母,您必须多次调用该方法:

public class RemoveLetter {
    public static void main(String[] args) {
        String string = "Hello World";
        String result = remove(string, 'o');
        result = remove(result, 'H');
        System.out.println(result);  
    }
    public static String remove(String text, char symbol){
        String a= "";
        for(int i = 0; i < text.length(); i++){
            char letter = text.charAt(i);
            if(letter != symbol) {
                a += letter;
            }
        }
        return a;
    }
}

这将为您提供输出ell Wrld

【讨论】:

  • 但是我使用了自己制作的方法而不是主要方法,以及使用数组
  • 每个 java 程序都绝对需要一个主方法。这样计算机就知道从哪里启动程序。你在哪里使用数组?我在您的代码中没有看到数组。
  • 不客气。如果此答案对您有所帮助,如果您接受,我将不胜感激(单击此答案旁边的绿色复选标记)。这是对在stackoverflow上对您帮助最大的答案说“谢谢”的标准方式(连同upvoting)。
  • 但是假设文本有两个字符要删除,例如 // String text= ""xxxgoodxxxluckxxxxooo"; 并且客户端想要删除 x 和 o?
  • @ghosthunter 他们会使用不同的参数调用该函数两次,第二次使用第一次调用返回的字符串。
【解决方案2】:

i 不是 1,应该是 0。试试这个代码:

public static String remove(String text, char symbol) {

    StringBuilder a = new StringBuilder();
    for (int i = 0; i < text.length(); i++) {
        char letter = text.charAt(i);
        if (letter != symbol) {
            a.append(letter);
        }
    }
    return a.toString();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-21
    • 1970-01-01
    • 1970-01-01
    • 2018-01-04
    • 2012-04-25
    • 1970-01-01
    相关资源
    最近更新 更多