[英]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)我如何使用? 带有可变变量的字符串代码
使用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
的方法(将i
和j
作为第一个和第二个参数进行处理)并返回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.