繁体   English   中英

java if语句字符串比较

[英]java if statement string comparison

    package canlitahmin;

    import java.sql.*;
    import java.util.ArrayList;
    import java.util.List;

    public class baglanti {
       // JDBC driver name and database URL
       static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
       static final String DB_URL = "jdbc:mysql://localhost:3306/canlitahmin";

       //  Database credentials
       static final String USER = "root";
       static final String PASS = "";
       public static List<Integer> id = new ArrayList<Integer>();
       public static List<Integer> evgol = new ArrayList<Integer>();
       public static List<Integer> kuralid = new ArrayList<Integer>();
       public static List<String> kural = new ArrayList<String>();
       public static List<Integer> depgol = new ArrayList<Integer>();
       public static List<Integer> dakika = new ArrayList<Integer>();

       public static void main(String[] args) {


       Connection conn = null;
       Statement stmt = null;
       Statement stmt2 = null;
       try{
          //STEP 2: Register JDBC driver
          Class.forName("com.mysql.jdbc.Driver");

          //STEP 3: Open a connection
          System.out.println("Connecting to database...");
          conn = DriverManager.getConnection(DB_URL,USER,PASS);

          //STEP 4: Execute a query
          System.out.println("Creating statement...");
          stmt = conn.createStatement();
          stmt2 = conn.createStatement();
          String sql;
          String sql2;
          sql = "SELECT id, evgol, depgol, dk FROM maclar";
          sql2="SELECT id,kural from kurallar";
          ResultSet rs = stmt.executeQuery(sql);
          ResultSet rs2 = stmt2.executeQuery(sql2);
          int i=0;
          //STEP 5: Extract data from result set
          while(rs.next()){
             //Retrieve by column name
             id.add(rs.getInt("id"));
             evgol.add(rs.getInt("evgol"));
             depgol.add(rs.getInt("depgol"));
             dakika.add(rs.getInt("dk"));

             //Display values
             System.out.print("ID: " + id.get(i));
             System.out.print(", Evgol: " + evgol.get(i));
             System.out.print(", Depgol: " + depgol.get(i));
             System.out.println(", dakika: " + dakika.get(i));
             i++;
          }
          int k=0;
          while(rs2.next()){
              //Retrieve by column name
              kuralid.add(rs2.getInt("id"));
              kural.add(rs2.getString("kural"));

              //Display values
              System.out.print("KURALID: " + kuralid.get(k));
              System.out.println(", KURAL: " + kural.get(k));
              k++;
           }

          for(int l=0;l<id.size();l++){
              int BYTG=evgol.get(l);
             int DEPTG=depgol.get(l);

            /* int DK=dakika.get(l);
             int MACKODLARI=id.get(l);*/

             for(int j=0;j<kuralid.size();j++){

            ###if(kural.get(j))###{ // ERROR**********************************
                double a=BYTG+DEPTG+0.5;
                int b=BYTG+DEPTG;
                String kural="Tahmin:"+a+" üstü ve "+b+" üstü";
                System.out.println(kural);
            }}
          }
          //STEP 6: Clean-up environment
          rs.close();
          rs2.close();
          stmt.close();
          stmt2.close();
          conn.close();
       }catch(SQLException se){
          //Handle errors for JDBC
          se.printStackTrace();
       }catch(Exception e){
          //Handle errors for Class.forName
          e.printStackTrace();
       }finally{
          //finally block used to close resources
          try{
             if(stmt!=null)
                stmt.close();
          }catch(SQLException se2){
          }// nothing we can do
          try{
             if(conn!=null)
                conn.close();
          }catch(SQLException se){
             se.printStackTrace();
          }//end finally try
       }//end try
       System.out.println("Goodbye!");
    }//end main
    }//end FirstExample

java if语句字符串比较。 我的数据库数据进入“ kural.get(j)”,但出现kural.get(j)错误。 因为它的字符串变量。 问题:字符串a = b> 0 && c> 0-if(a)我如何使用? 带有可变变量的字符串代码

可以使用JavaCompilerjavax.tools包以编程方式完成此操作

作为一个相关问题,请参阅如何以编程方式编译和实例化Java类?

解决方法是相同的。

使用String不能轻松做到这一点。 您可以做的是像这样创建一个界面

interface IntIntPredicate {
    public boolean test(int i, int j);
}

然后,您可以执行以下操作(在Java 8中):

IntIntPredicate a = (i, j) -> i == 1 && j <= 2;
IntIntPredicate b = (i, j) -> i <= 0 && j == 2;

然后,您可以执行以下操作:

if (a.test(i, j)) {
    // do something
} else if (b.test(i, j)) {
    // do something else
}

这在Java的早期版本中是可能的,但是语法更加笨拙。

如果有必要将数据作为String输入,那么编写一种解析String的方法(将ij作为第一个和第二个参数进行处理)并返回IntIntPredicate可能不会太困难

public static IntIntPredicate parse(String x) {
    // This is going to require a lot of work, but
    // there are many questions on this site about how
    // to parse expressions such as "(2 + 3) * 9"
}

您可以制作一个方法,例如:

boolean predicate(i,j) {
    if (i==1 and j <=2) {
        return true;
    }
    return false;
} 

然后调用这样的方法:

if (predicate(i,j)) {
    System.out.println("a");
}

您也可以使用ScriptEngine,但需要将逻辑转换为脚本语言,例如Javascript。

import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptException;

/**
 *
 * @author afshin
 */
public class Blah {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws ScriptException {

        ScriptEngineManager mgr = new ScriptEngineManager();
        ScriptEngine engine = mgr.getEngineByName("JavaScript");
        int i = 1;
        int j = 1;
        String a = i + "==1 && " + j +"<=2";
        String b= i + "<=0 && " + j+"==2";

        if (((Boolean) engine.eval(a)))
            System.out.println("a is true");
         if (((Boolean) engine.eval(b)))
            System.out.println("b is true");

    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM