有个字符串比如String=“package san;public class sanjiaox { /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
sanjiaox a=new sanjiaox();
int v=a.ss(3, 2, 1.5);
System.out.println(v); }
public int ss(double a,double b,double c){
if((a+b)>c&&(b+c)>a&&(a+c)>b){
//判断是不是三角形
if(b==c&&c==a){
return 1;

}
if((b==c)||(c==a)||(b==a)){
return 2;
}
else{
return 3;
}


}
else {
return 0;
}


}}”把这个代码作为一个字符串我要截取出所有if后面的判断语句比如第一个遇到if我就截取出if后面的((a+b)>c&&(b+c)>a&&(a+c)>b)这个字段遇到第二个if截取(b==c&&c==a)这个字段
以此类推找出所有if后面的判断语句的字段的java代码要怎么编写麻烦各位帮帮想办法java下String字符的截取JavaString

解决方案 »

  1.   

    String str="if((a+b)>c&&(b+c)>a&&(a+c)>b){";
    //str参数表示,读取文件中的一行  如果读取的不是一行,那么就在这之前拼成一行,再调用此方法
    public String getStrRes(String str){
        if (str.trim().startwith("if")){
           //获取if的在字符串中的位置
           int begin = str.indexOf("if");
           //获取第一个{在字符串中的位置
           int end = str.indexOf("{");
           return str.substring(begin + 2,end - 1);
        }
        return null;
    }
    上面代码没有测试,大体思路是这样,测试看看,逻辑应该没有问题,细节可能会有错误。
      

  2.   

    贴上代码:package csdn_628;import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;public class sanjiaox {
    public static void main(String[] args) throws IOException {
    sanjiaox a = new sanjiaox();
    int v = a.ss(3, 2, 1.5);
    System.out.println(v);

    FileReader fr = new FileReader("D:\\AndroidProgram\\MyCsdn06\\src\\csdn_628\\sanjiaox.java");
    int c;
    char d;
    while((c = fr.read()) != -1){
    while((char)c == 'i' && (char)fr.read()=='f'){
    while((d = (char)fr.read()) != '{')
    System.out.print(d);
    }
    }
    } public int ss(double a, double b, double c) {
    if ((a + b) > c && (b + c) > a && (a + c) > b) {
    // 判断是不是三角形
    if (b == c && c == a) {
    return 1; }
    if ((b == c) || (c == a) || (b == a)) {
    return 2;
    } else {

    return 3;
    }
    } else {
    return 0;
    }
    }
    }
      

  3.   

    那个绝对路径是我java文件的路径,楼主要自己改下自己的路径才可以运行
      

  4.   

    3L 不错~
    不过如果if()不带左括号就麻烦了。建议用(计数比较,if后面得到一个(,计数器+1,得到一个)计数器-1,最后计数器为0了,打印结束~