小弟现在因个人原因需要读取一个文档然后作出相应修改之后再输出这个被修改的文件..貌似是个很常见的问题 -.-好了正题是:读取和输出文件都没有问题,然而如果我文件里有一个变量叫做
Sa1_example,而我只确定example这个关键字,也就是说example之前的Sa1_不是固定的,不同的地方会发生变化。
有可能会是Abc_example.. Bac_example..StringBuffer sb = new StringBuffer();String textToEdit1 = "newExample";
int cnt1 = sb.indexOf(textToEdit1);
sb.replace(cnt1,cnt1+textToEdit1.length(),"NewJavaExample");我用以上的代码得出的结果是Sa1_example被替换为了Sa1_NewJavaExample,
当然是显而易见的 -.-而我并不想要保留Sa1_,该要如何替换呢?
除了对每一个不同变量都单独定义一次...另外一个例子:motorA_speed = 100;
motorB_speed = 200;需要转换为:motorASpeed = Motor.A.SetSpeed(100);
motorBSpeed = Motor.B.SetSpeed(200);笨方法当然是查找motorA...替换..查找motorB...替换..
但是如果变量很多的时候,不可能每一个case都要这样定义一次吧 o.O应该会有更好的方法吧..还有我读取的时候是把整个文件都看作一个String,
查找motorA_speed =然后替换为motorASpeed = Motor.A.SetSpeed();是很容易,
可motorB_speed =之后的数值该怎样得到呢?不知道有没有说清楚问题所在,
总之先谢谢各位大大了!! 

解决方案 »

  1.   

    没明白文件格式是怎么个样的。你可以参考读取ini文件配置
    读文件的时候可以试一个用 行 的方式读取,再用spilt = 分成数组。后面再去匹配输出
      

  2.   


    文件就是普通的文档文件啦我也是有这个用 行 的想法!问题代码如何实现啊?还有split在这里的用处没有太明白 之后如何判断后面的赋值呢?请教大大!!
      

  3.   

    不清楚,如果是ABC_example这样的,你得得到这整个串,然后把东西换了,你用Replace这样替换当然只能替换部分了.用正则得到ABC.....这整个,都换为example.是这个结果不?
      

  4.   


    大大,正则是啥啊 o.O例如我的初始C代码为:motorA_speed = 100;
    为了使这个代码能够工作于我的java API,要改成motorASpeed = Motor.A.SetSpeed(100);这里"motor _speed"肯定是固定的 因为变量名字是我在软件里设定好的
    但可能会是motorA_speed,motorB_speed,motorC_speed等等。。在已知字符串里一定会包含motor _speed的情况下
    如何把所有的motorA_speed,motorB_speed,motorC_speed替换为相应的
    motorASpeed = Motor.A.SetSpeed(100)
    motorBSpeed = Motor.B.SetSpeed(200)
    motorCSpeed = Motor.C.SetSpeed(300)
    motorDSpeed = Motor.D.SetSpeed(400)这是困惑我的地方还有一个就是后面的赋值100,200,300,400。。
    要如何判断他们是不是赋值呢。。因为我把整个文档都是按照一个大String读取的。。等大大讲解!!