永发信息网

java高手帮忙解决问题,谢谢

答案:5  悬赏:10  手机版
解决时间 2021-04-26 16:26
  • 提问者网友:低吟詩仙的傷
  • 2021-04-25 17:23

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

最佳答案
  • 五星知识达人网友:纵马山川剑自提
  • 2021-04-25 18:14
鱼骨 正解
全部回答
  • 1楼网友:动情书生
  • 2021-04-25 20:54

你的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); } }

  • 2楼网友:胯下狙击手
  • 2021-04-25 20:48

shanchu s=new shanchu(a,b);是实例化对象,会寻找两个参数的构造方法,但是你这个类里面没有构造方法,所以找不到。

void shanchu(String sa,String sb){ s1=sa; s2=sb; }

把前面这个void去掉就可以了哈。

记住构造方法不写返回类型的。

  • 3楼网友:梦中风几里
  • 2021-04-25 20:22

String a,b; 定义放到 try外面

就是

try之前

  • 4楼网友:毛毛
  • 2021-04-25 18:57

你的构造函数传入的是两个字符串 你定义了

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 这些只是个名字 其实传入就是字符串

名字可以随意的起

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯