【问题标题】:remove characters from a string, cmd input从字符串中删除字符,cmd输入
【发布时间】:2015-03-22 18:55:23
【问题描述】:

我必须编写一个程序,它从 cmd 获取一个 int N 后跟 N 个字符串和一个 char c 的输入,并使用 String removeChar(string str, char c) 方法返回删除了 char c 的每个字符串。

我已经完成了,但是没有来自 cmd 的输入它可以工作,但是当我使用此代码时,我在编译器中遇到错误

public class A{
    public static void main(String[] args){
        int n= Integer.parseInt(args[0]);
        String s=args[0];
        char c= s.charAt(0);
        for (int i=1; i<=n; i++){
            String b=removeChar(args[i],c);
            System.out.println(b);
        }
    }
    public static String removeChar(String str, char c){
        for (int i=1; i<=n; i++){
            String s1= args[i].remove(c);
        }
        return s1;
    }
}

【问题讨论】:

  • 请展示一些代码,然后社区可能会提出解决方案。
  • 从 Java 中的 Scanner 类中了解 nextInt()next() - 紧随其后的是 FOR 循环。这已在 Stack Overflow 中被问了 N 次。
  • 这是我的任务,我们还没有学习这些东西。
  • 我可以使用 for 循环但还不能使用扫描仪
  • @Batoul 你的意思是“一个 int N 后跟一个长度为 N 的字符串和一个 char c”吗?我不确定你的问题是否正确

标签: java string char


【解决方案1】:

假设我对您的问题的理解是正确的,您需要将您的代码编辑为如下所示(按照我在代码中的 cmets):

public class A {
    public static void main(String[] args){
        int n= Integer.parseInt(args[0]); // Number N

        // Hold N strings into an array
        String[] s = new String[n];

        // Capture N strings from the cmd line args
        for (int i=0; i<n; i++)
        {
             s[i] = args[i+1];
        }

        // Ignore everything except the first character, which is your 'c'
        char c= args[args.length-1].charAt(0);  

        // Remove c from each of the captured strings
        for (int i=0; i<s.length; i++)
        {

            // Display new string with removed character 'c'
            System.out.println(removeChar(s[i],c));
        }
    }
    public static String removeChar(String str, char c){
        // Replaces all occurrences of c in str
        String c_str = ""+c;
        return str.replace(c_str, "");
    }
}

测试:

javac A.java

java A 3 "Jason is a cowboy" "Ducky" "Huck" "c"

// Results are
Jason is a owboy
Duky
Huk

这对你有用吗?注:显然这个解决方案不是“愚蠢的证明”,即你可以输入错误数量的字符串(N),它会崩溃,但根据你的主要问题,这可能是你想做的事情

【讨论】:

  • 谢谢,但我们也不能使用数组。这就是让事情变得困难的原因
  • @Batoul 您的问题在这种情况下非常模糊 - 您必须在原始问题中指定这些内容,而不是说答案不起作用
猜你喜欢
  • 1970-01-01
  • 2023-02-06
  • 2016-11-24
  • 1970-01-01
  • 2022-11-14
  • 1970-01-01
  • 2021-01-23
  • 2016-07-26
相关资源
最近更新 更多