输出不正确

时间:2019-09-01 13:51:53

标签: java

我创建了一个程序,使用扫描仪类从字符串中删除字符,它将给出不带字母的输出。例如

输入:“这是印度”

输入(要删除的字符):I

输出:THS S NDA

我没有尝试任何其他操作。

import java.util.*;
public class StringDel
{
    public static void main()
    {
        Scanner sc = new Scanner(System.in);
        String S,str;
        int l,i,ch,chr,s2;
        s2=0;
        System.out.println("Enter a character");
        str = sc.nextLine();
        System.out.println("Enter the character you want to delete");
        chr = sc.next().charAt(0);
        l = str.length();
        for(i=0;i<l;i++)
        {
            ch = str.charAt(i);
            if(ch!=chr)
              s2= s2 + ch;
        }
        System.out.println("Output:" +s2);
    }
}

2 个答案:

答案 0 :(得分:2)

int l,i,ch,chr,s2;

此行将所有这些变量声明为int

您不希望它们全部为intint包含数字(整数)。但是,如果您希望将s2的最终值设为THS S NDA,则显然不应该是数字。

chchr应该是chars2应该是String

int l, i;
char ch, chr;
String s2;

,并且您分配给s2的初始值必须是String

s2 = "";

也:在实际首先需要它们的地方声明变量,例如:

    char chr = sc.next().charAt(0);
    int l = str.length();
    String s2 = "";
    for(int i=0;i<l;i++)
    {
        char ch = str.charAt(i);
        if(ch!=chr) {
          s2 = s2 + ch;
        }
    }

答案 1 :(得分:0)

您的变量类型错误:

int l,i;
char ch,chr;
String s2="";

并删除     s2 = 0;

通过此更改,您的代码将可用。

另外,Java字符串具有函数replaceAll,您可以通过以下方式使用它:

s2 = str.replaceAll(chr+"", "");

作为最后的注释,您在该行的代码中有一个未使用的变量:

String S,str;

您以后从未在代码中使用过的变量S,因此摆脱它是一种好习惯,而变量名也是使它们以小写字母开头的好习惯。