gpt4 book ai didi

Java:不打印以特定字符开头的行

转载 作者:行者123 更新时间:2023-11-29 19:10:29 25 4
gpt4 key购买 nike

所以基本上我想做的是从gree1out文件中读取信息,其中包含以下信息:

1|1

2|0

以下代码片段连接到我的 mySQL 数据库,使用前 2 个数字(“|”之前)来获取 xf.user.user_id

当前字符串打印是:

equalsdavid 1 6af87ef8-e620-4d08-8320-183fc469eb0d

user 0 ac899bce-4a87-4977-957c-05013534b25b

我需要一种方法来删除字符串第二部分小于 1 的行。现在我尝试做类似的事情,但既然我在这里,你可能会说它不起作用:

  temp = temp.replaceAll("(?m)^0.*", "");

这是代码:

  package io.chuchoter.stats2;

import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.UUID;

import io.chuchoter.core.Main;

public class RATE2_agree {
public static void main(String [] args) {

String line = null;

try {

PrintStream p = new PrintStream(new File(Main.agree2out));
System.setOut(p);

FileReader fileReader =
new FileReader(Main.agree1out);

BufferedReader bufferedReader =
new BufferedReader(fileReader);

while((line = bufferedReader.readLine()) != null) {

String[] parts = line.split("|");
String part1 = parts[0];
String part3 = parts[2];

Connection con = DriverManager.getConnection(Main.host, Main.uName, Main.uPass);

Statement rstmt = con.createStatement();
String r = "SELECT * FROM `xf_user` WHERE `user_id` = " + part1 + ";";
ResultSet rs = rstmt.executeQuery(r);

while (rs.next()) {
String uuid = UUID.randomUUID().toString();
String username = rs.getString("username");

String print = username + " " + part3 + " " + uuid;
System.out.println(print);
}
}

bufferedReader.close();

}

catch(FileNotFoundException ex) {
System.out.println("Unable to open file");
}
catch(IOException ex) {
System.out.println(
"Error reading file");
}

catch (SQLException err) {
System.out.println(err.getMessage());
}
}

}

感谢您的帮助!

最佳答案

对于字符串“1|1”,当您应用拆分时

String[] parts = line.split("|");

你得到一个大小为 2 的数组。因此你的代码将像这样

String[] parts = line.split("|");
String part1 = parts[0];
String part3 = parts[1];
Connection con = DriverManager.getConnection(Main.host, Main.uName, Main.uPass);

Statement rstmt = con.createStatement();
String r = "SELECT * FROM `xf_user` WHERE `user_id` = " + part1 + ";";
ResultSet rs = rstmt.executeQuery(r);

StringBuilder sb = new StringBuilder();
while (rs.next()) {
String uuid = UUID.randomUUID().toString();
String username = rs.getString("username");
String print = username + " " + part3 + " " + uuid;
if(Integer.parseInt(part3) >= 0)
sb.append(print + "\n");
}
System.out.println(sb.toString());

希望这有帮助!

关于Java:不打印以特定字符开头的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43123473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com