gpt4 book ai didi

java - 用分隔符分割java中的字符串

转载 作者:行者123 更新时间:2023-12-01 16:57:17 24 4
gpt4 key购买 nike

我的字符串是蜘蛛侠| bat 侠|超人我想分割字符串,使输出看起来像 Spiderman Batman Superman我试过这个:

String actors = "Spiderman|Batman|Superman";
String [] temp;
String delimiter = "|";

temp = actors.split(delimiter);
for (int i =0; i<temp.length; i++)
System.out.print(temp[i].replaceAll("\\|", " "));

我怎样才能做得更好?输出没有任何意义。谢谢你的期待。输出仍然与输入相同。编译后,它向我显示:

Spiderman|Batman|Superman

就像 split 方法从未启动过一样。

第二个问题

请看这张照片。如果我使用 100k 字符串,它看起来像这样: screenshot of eclipse console

请查看我的代码中 for 循环之后的注释。我的分割字符串有效,但我得到一个奇怪的输出。 (请看截图)我认为这是由“打印”引起的,或者没有更多的空间来表示近30万个字符串。我将我的数据库项目与 eclipse 连接起来。在 postgres 中,我导入了一个 .csv 文件,其中包含有关近 30 万部电影的信息。比如 Actor 导演、年份、评分等。这是我的问题:

这是我的 Java 代码

package dbs;
import java.sql.*;

public class Fertigevariante {

public static void main(String[] args) {
try {
Class.forName("org.postgresql.Driver");
String url= "jdbc:postgresql://localhost:5432/postgres?user=postgres&password=password";
Connection conn = DriverManager.getConnection(url);


Statement st= conn.createStatement();
ResultSet rs= st.executeQuery("SELECT * FROM kinofilme");
while (rs.next()){
String imdib= rs.getString("imdib");
String rating = rs.getString("rating");
int votes = rs.getInt("votes");
String runtime = rs.getString("runtime");
String name = rs.getString("name");
String directors = rs.getString("directors");
String actors = rs.getString("actors");

String [] temp;
String delimiter ="|";

temp = actors.split(delimiter);
for(int j=0 ; j < temp.length; j++)
System.out.print( temp[j].replaceAll("\\|", " ")); // here is the output problem, look at the screenshot I uploaded here.


int year = rs.getInt("year");
// System.out.println(imdib + "\t" + name + "\t" + year + "\t" + votes + "\t" + directors + "\t" + actors);

}
rs.close();
st.close();




conn.close();
}
catch(Exception e){
e.printStackTrace();
}



}
}

最佳答案

当您拆分然后使用print时,您将得到:“SpidermanBatmanSuperman”

由于您想要中间有一个空格,因此可以将最后一行替换为:

System.out.print(temp[i] + " ");

但是您可以通过简单地替换子字符串“|”来做得更好带空格:“”

System.out.print("Spiderman|Batman|Superman".replaceAll("\\|", " "));

在这两种情况下,输出都是:

Spiderman Batman Superman

重要:

when you split/replace | you should escape it since it's a special character that has a regex-meaning!

关于java - 用分隔符分割java中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31032228/

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