gpt4 book ai didi

Java:用不同的空白字符替换字符串中的空格?

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

我有一个巨大的文本文件,我必须手动解析。真的没有别的办法,只能迭代它。

我抓取文件中的每一行并 .split("") 它们以获取各个组件 - 一些是 int 数组,其他是 char 数组,还有一些是实际的文本字符串。

文本字符串让我很头疼,因为有时它们会有一个空格。

示例行是这样的:

String strLine = "Identifier {2 4 \"#0# == \\\"This String\\\"\" 12 21 6}

当我执行以下操作时:

String[] strParts = strLine.split(" ");

结果输出是一个字符串数组,字符串值为:

Identifier,{2,4,"#0#,==,\"This,String\"",12,21,6}

我需要的输出是:

Identifier,{2,4,"#0# == \"This String\"",12,21,6}

所以我在考虑是否可以在执行 split() 之前将不同的空白字符应用于引号内的字符串。

有人知道吗?

我也考虑过深入研究 RegEx,但我对 RegEx 的使用还不够多,无法正确地制定围绕拆分的逻辑——按空格拆分,除非该空格在第一个和最后一个引号之间。”

谢谢。

[更新]

我在这里添加这个是因为回复中的代码格式不是最佳的。

String strLine = "Identifier {2 4 \"#0# == \\\"This String\\\"\" 12 21 6}";

String delim = "§"; //use the Section Sign as a delimeter

StringBuilder sb = new StringBuilder();
//first part
sb.append(new String(strLine.substring(0,strLine.indexOf("\""))));

//middle part
sb.append(new String(strLine.substring(strLine.indexOf("\""),strLine.lastIndexOf("\""))).replace(" ", delim));

//last part
sb.append(new String(strLine.substring(strLine.lastIndexOf("\""))));

//make array
String[] parts = sb.toString().split(" ");

稍后我需要替换那些定界符,但至少它可以满足我现在的需要。

感谢大家的建议,正是他们的结合最终为我解决了这个问题。

最佳答案

您真的不需要用空格替换字符串空格。尝试一些非常独特的东西,比如:'_!_!'

首先查找您的替换字符串以验证它不在文件中,然后进行替换。

然后进行正常拆分。

最后,在成品中用普通空格替换替换字符串。

关于Java:用不同的空白字符替换字符串中的空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34662643/

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