10

有没有办法将字符串附加到 Eclipse 中的行尾?搜索和查找似乎可以工作,但仅使用正则表达式的$查找找不到任何字符串。.$会找到一些东西,但是运行 find replace 会删除行的最后一个字符,这是不可取的。有谁知道在 Eclipse 中实现这一点的方法?我的正则表达式是否有什么问题可能使 Eclipse 无法理解这一点,而其他编辑器(如 vim)处理得很好..(在 Vi / Vim 中:0,$s/$/appended to end of line/)。

当然,我不是唯一一个希望有这个功能的人......大多数其他优秀的编辑器都提供了它。这可以被认为是一个错误吗?

4

3 回答 3

15

我同意这是 eclipse 中的一个错误。我尝试了与您相同的结果。我还尝试使用正则表达式搜索字符串“(?<=.)$”来尝试忽略替换中的单个字符匹配,但这也失败了。应该能够搜索要附加的字符串结尾。

这是让它工作的技巧,

      Find: "(.)$"
      Replace: $1foo

这将替换行尾之前的单个字符匹配并附加 foo。

这是很多箍跳,但至少它有效。

于 2012-08-22T14:41:30.047 回答
1

我想知道最好的选择是否是在复制变量之前在变量列表上运行 Java 程序。我不确定您从中剪切和粘贴的文件的格式,但如果它只是一个仅列出每行上的变量名称,试试这个:

ArrayList<String> importarray = new ArrayList<String>();
ArrayList<String> rebuildarray = new ArrayList<String>();
BufferedReader bufferedfile = new BufferedReader();

public static void main(String[] args) {
   readFile();
   processFile();
}

static void readFile() {

String file = "C:\\path\\file.txt";
try { 
    String line;
    importstart = new BufferedReader(new FileReader(file));
    for (line = importstart.readLine(); line != null; line = importstart.readLine()) {
        importarray.add (line);
    }
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}
}

 static void processFile() {
String complete = "";
for (String string : importarray) {
    complete = string + "\";";
    rebuildarray.add(complete);
}
  }

添加它会提供一个带有“”的变量名数组;“最后。

或者,您可以在 String 声明中使用此数组并执行以下操作:

for (String variable : rebuildarray) {
final String string = variable;
doSomething(string);
}

这将否定添加“;.

请注意确定这是否有点过多,甚至完全是您正在寻找的东西,但它们是一些想法。

于 2012-08-03T21:55:47.023 回答
1

就我而言,使用 Eclipse Luna (4.4.0),接受的解决方案不起作用。它只是替换第一行并留下其他行。但是有效(想添加一个分号):

find: ^.*$
Replace: $0;
于 2018-10-23T21:59:05.713 回答