如何找到更改的子字符串

时间:2014-02-28 15:32:12

标签: java gwt

我正在GWT中创建一个应用程序,每0.5秒扫描一次RichTextArea中的文本。应使用一个或多个ChangeEvents记录oldText和newText之间的差异。

new InsertEvent(int position, String substring)
new DeleteEvent(int position, int length)

如何在这些字符串之间找到一个或多个更改的最佳方法?例如:

一个事件

String oldText = "Hello world!";
String newText = "Hello woarld!";
ChangeEvent one = new InsertEvent(8,"a");

几项活动

String oldText = "Hello world its me.";
String newText = "Hello world it's me, Tharmar !";
ChangeEvent several00 = new DeleteEvent(18,1);
ChangeEvent several01 = new InsertEvent(13,"'");
ChangeEvent several02 = new InsertEvent(18,", Tharmar !");

由于这些扫描之间的时间很短,因此应该没有太大差异。有人可以给我一个反馈或建议,我可以识别这些变化并记录它们吗?

1 个答案:

答案 0 :(得分:0)

您的方法可能会轻易冻结浏览器,尤其是长文本。至少,如果没有浏览器事件,请不要进行比较。

我认为您可以考虑采用不同的方法:记录OnKeyUp事件以跟踪插入,其中退格键和删除键是一种特殊情况 - 用于删除文本。您可能还需要跟踪文本选择以查找可能的删除,即如果在选择文本时发生KeyUpEvent,则删除此文本(退格,删除按钮)或替换为新字符。

与任何给你这些要求的人交谈。试着说服他们记录用户在保存文档时所做的更改就足够了。否则,您将面临严重降低用户体验的风险。