- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有 2 个如下所示的列表。
List<String> list1 = Arrays.asList("I'm a cat", "dog", "There's an elephant and I'm seeing", "we're five");
List<String> list2 = Arrays.asList("I'm", "There's", "we're");
和如下的 HashMap 。
"I'm": "I am"
"we're": "we are"
"There's": "there is"
这里我需要用字典值更新我的list1
。即它应该是这样的
"I am a cat", "dog", "There is an elephant and I am seeing it", "we are five"
这里我的主要问题是我提供的 list1
有接近 80K 个句子,而 map 有 4k 个值。在这里,我能够生成所有 list1
、 list2
和 map
。但由于它非常大,我无法找到一种有效的方法来进行查找和替换。
我想过通过将列表转换为数组来使用 commons
StringUtils.replaceAll()
,但问题又是我需要循环遍历所有 80k 项 * 4k 次(甚至更多,因为它们是语句而不是单个单词字符串)。
我该怎么做?
最佳答案
这是另一个版本,我找到了这个post并稍微修改了程序...
Map <String, String> tokenMap = new HashMap <> ();
tokenMap.put("I'm", "I am");
tokenMap.put("We're", "We are");
String [] array = {"I'm at home" , "We're playing football"};
String content = Arrays.toString(array).substring(1, Arrays.toString(array).length() - 1);
String regex = StringUtils.join( tokenMap.keySet(), "|");
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(content);
StringBuffer buffer = new StringBuffer();
while(matcher.find())
{
matcher.appendReplacement(buffer, tokenMap.get(matcher.group(0)));
}
matcher.appendTail(buffer);
array = buffer.toString().split(", ");
我不知道它的效率如何,我只用很少的元素测试了它......
关于java - 借助 map 在数组列表中查找和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50316192/
XmlTextReader 提供对 XML 数据流的只进只读访问。当前节点指读取器定位到的节点。使用任何读方法推进读取器并且属性反映当前节点的值。 此类实现 XmlReader 并符合 W3C 可扩
我需要在我的代码中调用一些java代码。我使用 BeanShell 来实现。所以,我可以这样做: public void testInterpreter() { Interpreter i =
嗨,我对 MySQL 相当陌生,我遇到了一个无法解决的问题。我有一个表“option_benefits_id”。 id | option_id | benefit_id ===============
我有一个很大的位图,当 qwerty 键盘可见时,我想将其保存在内存中。我的应用程序始终处于横向状态,因此这是唯一会导致重绘的配置更改。我听说这就是 onRetainNonConfigurationi
我正在尝试匹配以下字符串: something, something, something, something, something shouldignore 所需的输出为:[something,
我正在尝试借助对话框添加新客户端,但我的编辑文本似乎不存在。 看起来所有 ID 都是正确的,并且 Activity 生命周期一切都很好,但我得到: java.lang.NullPointerExcep
我有 2 个如下所示的列表。 List list1 = Arrays.asList("I'm a cat", "dog", "There's an elephant and I'm seeing",
在模板编程中,static_assert 帮助程序员检查模板参数的约束并在违反约束时生成人类可读错误消息。 考虑这段代码, template void f(T) { static_assert
我花了过去 6 个小时试图解决这个问题,但我找到的关于 Knockout.js 中的订阅如何工作的文档非常少,以至于它现在已经从“有点烦人”类别转移到“彻头彻尾令人沮丧”类别。 我想要实现什么目标?
您好,我正在尝试在“varags”和“增强型 for 循环”的帮助下进行加法。但是我得到了这个标记“此方法必须返回 int 类型的结果”。 class Hello1 { int pluss(int..
我想将 css 保存在 css 文件中,由 jquery 完成更改?例如。我想用 CSS 方法更改背景颜色并一直保存该背景颜色。 如果有人有其他方法可以做到这一点。请分享。基本上我想这样做,如果 Do
我需要使用 NLP 解决以下问题,你能给我一些关于如何使用 OpenNLP API 实现这个的指示吗 一个。如何判断一个句子是否暗示过去、现在或将来的某个 Action 。 (e.g.) I was
我在二叉树的帮助下构建了一棵树来评估包含一元和二元运算符、常量和变量的数学表达式。 但我现在面临如何可视化如何表示三元运算的问题?可以通过二叉树来完成吗?如果不是,我是否有更好的数据结构来表示和评估相
我想根据搜索栏的运动放大和缩小图像! !任何人都可以帮助我做到这一点,请您及时回复,我们将不胜感激! ! ! 最佳答案 onProgressChanged() 方法做我想做的事! ! 公共(publi
借助 Flurry 分析,我已将移动分析集成到我的 iPhone 应用程序中,但我无法跟踪页面浏览量。 我在我的 Application Delegate 中使用了以下代码,并在 navigation
如何借助 javascript 发送 http header ? 最佳答案 当然。 var xhr = new XMLHttpRequest(); xhr.open("POST", "/path/to
我们正在连接到远程机器,然后将 .log 文件检索到本地以查看日志。但是有没有一种方法可以让我在浏览器中使用 ULR,这样当日志内容被记录到文件中时,日志就会显示为 。 谢谢,拉杰什 最佳答案 Tom
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit th
我有一堆 需要向左浮动的节点。这些节点向左浮动时的宽度总和大于其父容器。 不是增加父节点的宽度,而是扩大父级的高度并基本上向下流动到下一行。 这个问题是否有 CSS 解决方案,或者我是否需要一个 j
脚本 1 #!/usr/local/bin/expect spawn sftp user@10.xx.xxx.xx expect \"password\" send \"pass\r\" intera
我是一名优秀的程序员,十分优秀!