java - 如何根据光标位置分割线?

标签 java string parsing csv tokenize

我有一个文本文件,其中包含我需要的所有信息,需要将其转换为 .csv 文件。

示例:

abbccccdeffffiiiiiiiiiiiiiijjkkkkkkkkkkkllmmmmmmnnooo
abbccccdeffffiiiiiiiiiiiiiijjkkkkkkkkkkkllmmmmmmnnooo
abbccccdeffffiiiiiiiiiiiiiijjkkkkkkkkkkkllmmmmmmnnooo
abbccccdeffffiiiiiiiiiiiiiijjkkkkkkkkkkkllmmmmmmnnooo
abbccccdeffffiiiiiiiiiiiiiijjkkkkkkkkkkkllmmmmmmnnooo
abbccccdeffffiiiiiiiiiiiiiijjkkkkkkkkkkkllmmmmmmnnooo

所以基本上

  • 1.“a”是只有一个字符的第一列
  • 2.“bb”是长度为2的第二列
  • 3.“cccc”是长度为 4 的第三列
  • 4.“d”是长度为 1 的第四列
  • 5.“e”是第五列,长度为1
  • 6.“ffff”是第六列,长度为4

从这个例子中我们可以看到,我不能使用带有空格或逗号的分隔符,它们的长度都不同。请指出正确的方向。我只需要知道如何解决这个问题。

提前谢谢大家!

最佳答案

您知道每列值的长度,您可以使用String的substring方法。

string.substring(start, start+length);

其中 start 是列的起始索引,length 是列值的长度。

使用StringBuilder将它们转换为csv格式。当您计算列值时,继续将它们与 , 一起附加到 stringBuilder 对象中。检索并附加最后一列后,使用 toString() 将其转换为 String 并写入您选择的流。

我建议您使用相同的 StringBuilder 对象,而不是为每一行创建一个新对象。将其写入流后,只需将大小重置为零 (StringBuilder.size(0))。

关于java - 如何根据光标位置分割线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33002800/

相关文章:

java :loop user inputs individually

javascript - 如何使用正则表达式匹配多个值返回单个值?

python - 如何使用 lxml 在 Python 中获取已解析 HTML 页面的当前 url?

regex - 使用 Perl 捕获输出,直到找到特定模式

c# - 从 ObservableCollection<t>.Where 获取索引和对象

java - Android上动态添加TextView到ScrollView

java - 机器人和按键

java - 正则表达式\\s*,\\s*有什么作用?

c - 在C中给定字符串中插入 "String"变量

java - Protostuff - 在 Windows 中为 .java 文件生成不正确的输出路径