Java的一个传值问题,问了班里N多人没一个解决了,上来求大神

代码之海 2016-08-03 10:24:15
话不多说,开始粘代码
public void Write()
{
//这个是写入XML的一个方法
OutputFormat of = OutputFormat.createCompactFormat();
of.setIndent(" ");
of.setNewlines(true);
of.setEncoding("gbk");
try {
XMLWriter xml = new XMLWriter(new FileOutputStream("pe.xml"),of);
xml.write(TestCheck.d6);
//这里写入一个静态的document,为何写不进去?
} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
System.out.println("修改完毕!已保存!");
}
public void Reviseall()
{//这里是修改全部的方法,开启两个输入流,第一个输入要修改的ID号
Scanner sc1 = new Scanner(System.in);
List<Element> list = new ArrayList<Element>();
list = TestCheck.getRootElement().elements();
String ss = sc1.next();
ob: while (true)
{

for (Element e : list)
{
if(TestCheck.checkIDNotSame(ss).equals(e.attributeValue("id")))
{
System.out.println(ss);
System.out.println("不用输入要替换的名字!");
//Scanner sc2 = new Scanner(System.in);
//System.out.println(e.elementText("name");
e.element("name").setText("da");
//System.out.println(e.element("name").getText());
Write();//这里在遍历完毕之后写入进去
break ob;
}
}
}
}
public static String checkIDNotSame(String ID)
{//检查是否存在ID
List<Element> list = new ArrayList();
list = getRootElement().elements();
obb15: while (true)
{
for (Element e : list)
{
if (e.attributeValue("id").equals(ID))
{
break obb1;
//也就是说,当查找到ID的时候,我们就终止循环
}
}
System.out.println("ID不存在!");
}
System.out.println("我输入的ID为"+ID);
return ID;
}
switch (i) {
case 1:
System.out.println("请输入要修改学生的ID");
tr.Reviseall();
break;
...全文
166 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
代码之海 2016-08-03
  • 打赏
  • 举报
回复
占用一下沙发,这就是一个java解析XML文件,用一个xml文件来模拟一个数据库进行增删改查,这个是修改, 整个流程是,调用 reviseall来进行修改全部学生信息,然后进入增强for来遍历,然后进入一个判断ID是否存在的一个方法,它接受一个 字符串型,我在调用时就把scanner接受到的输入传递进去,进行判断ID是否存在,如果存在就把XML文件的名字更改掉, 现在问题是,当我传入进去并判断成功之后,整个流程下来并没有写入到XML文件里去,而这个ID又是判断成功的 如果把那个判断ID的方法去掉,直接用scanner接受的输入进行判断就可以修改成功,一直没想明白为何,

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧