import java.io.*;
import javax.swing.JOptionPane;
public class zhu {
public static void main() throws Exception{
try{
String a,b;
a=JOptionPane.showInputDialog("请输入第一个字符串").toString();
b=JOptionPane.showInputDialog("请输入要删除的内容").toString();
}catch(Exception e){
System.out.println("要删除字符串不存在");
shanchu s=new shanchu(a,b);
s.sc();
}
}
}
public class shanchu {
static String s1,s2,s3;
void shanchu(String sa,String sb){
s1=sa;
s2=sb;
}
void sc(){
s3=s1.replaceAll(s2, " ");
System.out.println(s3);
}
}
这个程序为什么在shanchu s=new shanchu(a,b);时不能识别传递的参数a和b
你的a和b参数是两个局部变量只在try块里有效,在catch块,里不识别了
解决方法就是将a,b放到try语句的外面进行定义。
import javax.swing.JOptionPane;
public class zhu
{
public static void main(String []args) throws Exception
{
String a=null,b=null;
try
{
//String a,b;
a=JOptionPane.showInputDialog("请输入第一个字符串");
b=JOptionPane.showInputDialog("请输入要删除的内容");
shanchu s=new shanchu(a,b);
s.sc();
}catch(Exception e)
{
System.out.println("要删除字符串不存在");
}
}
}
class shanchu
{
static String s1,s2,s3;
public shanchu(String sa,String sb)
{
s1=sa;
s2=sb;
}
void sc()
{
s3=s1.replaceAll(s2, " ");
System.out.println(s3);
}
}
shanchu s=new shanchu(a,b);是实例化对象,会寻找两个参数的构造方法,但是你这个类里面没有构造方法,所以找不到。
void shanchu(String sa,String sb){
s1=sa;
s2=sb;
}
把前面这个void去掉就可以了哈。
记住构造方法不写返回类型的。
你的构造函数传入的是两个字符串 你定义了
String a,b;
a=JOptionPane.showInputDialog("请输入第一个字符串").toString();
b=JOptionPane.showInputDialog("请输入要删除的内容").toString();
肯定传入的是a和b 如果改成
String q ,w;
q=JOptionPane.showInputDialog("请输入第一个字符串").toString();
w=JOptionPane.showInputDialog("请输入要删除的内容").toString();
那么传入的就是q和w 这些只是个名字 其实传入就是字符串
名字可以随意的起
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息