【发布时间】:2011-07-14 01:00:19
【问题描述】:
我有一个字符串“可能”比任何简单的 int 边界都长。
目前,string.substring 函数只接受 int 参数作为索引和长度,这对我来说还不够,因为我需要 long 作为参数值类型。
你知道长子串函数的任何实现吗?
或者你建议我做什么来解决这个很长的字符串可能会出现的查找子字符串问题?
谢谢。
【问题讨论】:
-
这么长的字符串(>2G 字符)会占用 >4GB 内存。您确定 substring 函数将是您唯一的问题吗?
-
字符串有多长?那么子字符串呢?您可能不想一次将整个字符串加载到内存中,而是在搜索子字符串时使用文件流读取文件的部分内容?
-
可能的字符串匹配过程可能只发生在内存上,并且机器的可用内存量据说非常大。此操作将处理的字符串是,整个字符串约为 10G 字符,子字符串约为 1000 个字符。我同意,除了资源需求之外,对那个大字符串的任何字符串匹配操作在算法上都是愚蠢的。