package jdbc;
import java.sql.*;
import java.util.Scanner;
class driver{
public static void main(String args[]){
while(true)
{
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/countries","root","");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from countries");
int count = 1;
Scanner scan = new Scanner(System.in);
System.out.println("What county");
String info = scan.next();
{
while(rs.next() )
{
if(rs.getString("name").charAt(rs.getString("name").length() -1) == info.charAt(0) && rs.getString("name").equalsIgnoreCase((info)))
{
System.out.println("success" + rs.getString("name"));
}
}
}
}
catch(Exception e){ System.out.println(e);
}
}
}
}
上面的代码连接到包含所有国家/地区名称的数据库。当最后给出的国家/地区的最后一个字母等于下一轮给出的国家/地区的第一个字母时,我的游戏将打印成功。例如,我输入加拿大,下一个输入是安哥拉等...
最佳答案
您正在比较“最后一个国家/地区”的最后一个字符的数据,如果输入数据是国家/地区,则使用结果集中的同一行。
而且,我不会这样做。您将从数据库中获取整个表到应用程序运行的位置,只是为了将其与用户输入进行一一比较。您应该使用 SQL 来完成此操作。
另外,“最后一个国家”的定义是什么?在您的代码中,最后一个国家/地区是表中所有可用的国家/地区。如果这是某种单词联想游戏,您需要存储用户最后输入的国家/地区。
关于java - 当用户输入数据库中存在的国家/地区名称并且最后一个国家/地区的最后一个字母等于下一个国家/地区的第一个字母时,我想打印成功,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40294987/