我有一个方法,它可以替换内部某些JSON对象键的所有出现。该方法有2个参数--一个JSON对象和一个要替换的行。在这里:
private XWPFTableRow replaceTextInARow(XWPFTableRow row, JSONObject jsonObjectToFindKeysIn)
{
XWPFTableRow copyOfOriginalRaw = new XWPFTableRow(row.getCtRow(), row.getTable());
for (XWPFTableCell cell : copyOfOriginalRaw.getTableCells()) {
for (XWPFParagraph p : cell.getParagraphs()) {
for (XWPFRun r : p.getRuns())
{
String text = r.getText(0);
if (text != null && jsonObjectToFindKeysIn.has(text))
{
text = text.replace(text, jsonObjectToFindKeysIn.getString(text));
r.setText(text, 0);
}
}
}
}
return copyOfOriginalRaw;
}
而且效果很好。我复制了原始行,原因是我不想替换原始行,如果需要,请将该行设置为该值。
然而,在这种情况下,它似乎不起作用:
XWPFTableRow exampleRow = tableToCreateRowsIn.getRow(tableToCreateRowsIn.getRows().size() - 2);
for(int i = 0; i < allSections.length(); i++)
{
System.out.println(exampleRow.getCell(0).getText());
JSONObject particularSection = allSections.getJSONObject(i);
XWPFTableRow replacedTableRow = replaceTextInARow(exampleRow, particularSection);
tableToCreateRowsIn.addRow(replacedTableRow, i + 2);
}
下面是一个示例行,如下所示:
我想对数组内的每个JSON对象使用这个示例。然而,在循环中的第一次迭代之后,exampleRow变得完全不同--此后的每个打印都成为循环中的替换值。它根据allSection数组的长度给出了行数。但是它们都是一样的,因为exampleRow已经改变了。我希望它是不变的。有什么问题?提前谢了。
嗯,我发现阿克塞尔·里克特的评论非常有用。所以,我已经重写了方法。现在看起来是这样的:
private XWPFTableRow replaceTextInARow(XWPFTableRow row, JSONObject richJSON, boolean createCopy) throws XmlException, IOException
{
XWPFTableRow copyOfOriginalRaw;
if(createCopy) // if we want our original table row to remain intact
{
copyOfOriginalRaw = new XWPFTableRow(CTRow.Factory.parse(row.getCtRow().newInputStream()), row.getTable());
}
else copyOfOriginalRaw = row; // otherwise we replace text in the original row
for (XWPFTableCell cell : copyOfOriginalRaw.getTableCells()) {
for (XWPFParagraph p : cell.getParagraphs()) {
for (XWPFRun r : p.getRuns())
{
String text = r.getText(0);
if (text != null && richJSON.has(text))
{
if(!richJSON.getString(text).isEmpty())
{
text = text.replace(text, richJSON.getString(text));
r.setText(text, 0);
}
else r.setText("-", 0);
}
}
}
}
return copyOfOriginalRaw;
}
我还增加了一个额外的论点。它使该方法变得非常通用--在本例中,我们可以选择是对原始表行进行更改,还是创建一个副本。谢了。
我试图找到一种方法来更改JTextArea组件中的行距。 稍微搜索一下似乎总是会发现相同的答案:“改用 JTextPane,然后调用 setParagraphAttributes”。 但我想知道是否有可能仅通过 JTextArea 来实现这一点,例如,弄乱字体。 使用< code>deriveFont(...)方法,可以改变字体的字距和字距,即字符之间的水平间距,但我还没能找到改变垂直间距的方法(
我有一份价值观清单。如何替换Dataframe列中不在给定值列表中的所有值? 例如 我想用“无”替换数据框S列中不在允许值列表中的所有值。我该怎么做?
但是当我重新加载/刷新数据库时,没有新的数据被追加到数据库中...这里是我的代码.... 当我运行它时,它显示没有错误,但数据从来没有进入数据库,我是哪里出错了?.....
问题内容: 我试图通过读取每一行,对其进行测试,然后编写是否需要更新来替换文本文件中的文本。我不想另存为新文件,因为我的脚本已经先备份了文件并可以进行备份。 到目前为止,这是我所拥有的…我从os.walk()获得了fpath,并保证pathmatch var正确返回: 但是最终发生的是,我只得到了几行(正确更新,请注意,但是从文件的开头重复了)。我认为这是一个范围界定的问题。 *另外:我想知道如何
寻找 代码是;制表符分隔。 注意:标题和段落从不相同。 查找: 替换为: 首先,我要感谢你的帮助
问题内容: 我想动态更新元素的文本: 我是jQuery的新手,因此对我来说,这项任务似乎非常具有挑战性。有人可以指出我要使用的功能/选择器吗? 如果可能的话,我想在不为需要更改的文本添加新容器的情况下执行此操作。 问题答案: 在Javascript中,该属性为您提供元素的所有子节点,包括文本节点。 因此,如果您知道要更改的文本始终是元素中的第一件事,那么请给出以下HTML: 您可以这样做: 当然,