【发布时间】:2012-01-11 08:26:35
【问题描述】:
如果我们知道要检索的字符串的索引,有没有办法从 ArrayList 中检索字符串?例如在这个字符串中:
String text2 = "if(AGE_Y>15){\r\n"
+ "x=PROPERTY_LENGTH;\r\n"
+ "}";
此字符串添加到的列表如下所示:if, (, AGE_Y, >, 15, ), {, ...
现在,如果我们遍历列表并将每个项目添加到 StringBuilder 并为每个项目定义索引:
for (int i = 0; i < list.size(); i++)
{
a=list.get(i);
strBuilder.append(a);
index = strBuilder.length() - a.length();
}
例如,我们将确切知道字符串“PROPERTY_LENGTH”在哪个索引处。
我的问题是,我们如何从列表中检索字符串“x”?我问是因为在“x”上方的行(或将命名该变量的任何内容)我想在 StringBuilder 中插入其他内容。通常我们可以这样做:
String previous=list.get(indexOfPropertyLength-2);
strBuilder.insert(index-previous.length-1,"string to insert");
这可能吗?
【问题讨论】:
-
您希望通过列表处理此问题的任何原因?我猜你可以使用正则表达式做你想做的事(用前缀和 x=PROPERTY_LENGTH 替换 x=PROPERTY_LENGTH)......如果你需要,你也可以提取 PROPERTY_LENGTH 的值,这只是一个占位符。
-
@aishwarya:我选择了一个列表,因为您在那里看到的 AGE_Y 和 PROPERTY_LENGTH 只是在这种情况下使用的大约 1000 多个可能(我称之为参考)中的两个,而我没有认为正则表达式适合那个(虽然可能是错误的)。
-
那么它是 ArrayList 还是 StringBuilder?
-
@DanielV,当然。我可能仍然建议使用正则表达式(并使用逻辑
or操作,即|来连接引用并构建正则表达式)。我个人觉得在操作字符串时使用索引很棘手,所以尽量避免它。
标签: java