我创建了一个程序,使用扫描仪类从字符串中删除字符,它将给出不带字母的输出。例如
输入:“这是印度”
输入(要删除的字符):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);
}
}
答案 0 :(得分:2)
int l,i,ch,chr,s2;
此行将所有这些变量声明为int
。
您不希望它们全部为int
:int
包含数字(整数)。但是,如果您希望将s2
的最终值设为THS S NDA
,则显然不应该是数字。
ch
和chr
应该是char
,s2
应该是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,因此摆脱它是一种好习惯,而变量名也是使它们以小写字母开头的好习惯。