gpt4 book ai didi

java - 根据各个字段的长度拆分字符串

转载 作者:行者123 更新时间:2023-11-30 06:49:31 25 4
gpt4 key购买 nike

我正在尝试解析一个文本文件并从中获取变量。这是我用于将数据转换为字符串的代码。

File file = new File(p);
BfferedReader reader = new BufferedReader(new FileReader(file));

while ((line = reader.readLine()) != null) {
oldtext += line;
}
reader.close();

EDIT: The file has fixed length field name, length of the value, value.

For example, field name with length 10 followed by single digit length of the value and then the value

fieldOne  5abcdefieldTwo  3abcfieldThree6abcdef

预期输出是将字段名和值都存储为键值对

fieldOne : abcde
fieldTwo : abc
fieldThree : abcdef

有没有办法编写正则表达式模式来拆分字符串?我确实搜索了这个可变长度拆分,但找不到任何内容。

如果无法进行模式拆分,我必须编写代码来遍历循环检查字段名称、值的长度并使用索引进行拆分。

最佳答案

现在您可以编辑问题了。

使用这个正则表达式:

([^\d]{10})(\d)(.*?)

Explanation

试试这个:

final String pat = "([^\\d]{10})(\\d)(.*?)";
final String string = "fieldOne 5abcdefieldTwo 3abcfieldThree6abcdef";

Pattern p = Pattern.compile(pat);
Matcher m = p.matcher(string);
String[] val = string.split(pat);

int cnt=0;
while(m.find())
System.out.println(m.group(1).trim()+" : "+val[++cnt]);

Run it

示例输出:

fieldOne : abcde
fieldTwo : abc
fieldThree : abcdef

关于java - 根据各个字段的长度拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42605354/

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