当前位置: 首页 > news >正文

高端响应式网站公司网站开发模板

高端响应式网站,公司网站开发模板,怎么建立一个网站好,湖州培训网站建设网络营销常见的问题是检测并显示两个文本#xff08;尤其是几百行或几千行#xff09;的差异。 使用纯java.lang.String类方法可能是一种解决方案#xff0c;但是对于此类操作最重要的问题是#xff0c;“性能”将不能令人满意。 我们需要一种有效的解决方案#xff0c;其可能具有… 常见的问题是检测并显示两个文本尤其是几百行或几千行的差异。 使用纯java.lang.String类方法可能是一种解决方案但是对于此类操作最重要的问题是“性能”将不能令人满意。 我们需要一种有效的解决方案其可能具有以下观点 文字差异工具示例 该问题包含两个部分 检测两个文本的差异为了检测差异在此解决方案中使用了一种有效的LCS最长公共子序列动态算法 。 该解决方案具有Otext1WordCount * text2WordCount复杂度并在下面被编码为“ longestCommonSubsequence”方法。 可视化差异可视化使用基于HTML标记的方法该方法将text2的新单词标记为绿色将text1的旧单词标记为红色。 该解决方案具有OchangedWordsCount *text1WordCount text2WordCount复杂度并在下面被编码为“ markTextDifferences”方法。 注意1为简单起见“ normalizeText”方法用于删除\ n\ t和多个空格字符。 注意2此类创建为Vaadin组件。 但是“ longestCommonSubsequence”是纯通用的“ markTextDifferences”方法是基于HTML的可视组件的通用因此它们也可以用于不同的框架。 import java.util.ArrayList; import com.vaadin.ui.CustomComponent; import com.vaadin.ui.Label; import com.vaadin.ui.Layout; import com.vaadin.ui.VerticalLayout;/** * Text comparison component which marks differences of two texts with colors. * * author cb */ public class TextCompareComponent extends CustomComponent {private Layout mainLayout new VerticalLayout();private ArrayListString longestCommonSubsequenceList;private static final String INSERT_COLOR #99FFCC;private static final String DELETE_COLOR #CB6D6D;public TextCompareComponent(String text1, String text2) {text1 normalizeText(text1);text2 normalizeText(text2);this.longestCommonSubsequenceList longestCommonSubsequence(text1, text2);String result markTextDifferences(text1, text2, longestCommonSubsequenceList, INSERT_COLOR, DELETE_COLOR);Label label new Label(result, Label.CONTENT_XHTML);mainLayout.addComponent(label);setCompositionRoot(mainLayout);}/*** Finds a list of longest common subsequences (lcs) of given two texts.* * param text1* param text2* return - longest common subsequence list*/private ArrayListString longestCommonSubsequence(String text1,String text2){String[] text1Words text1.split( );String[] text2Words text2.split( );int text1WordCount text1Words.length;int text2WordCount text2Words.length;int[][] solutionMatrix new int[text1WordCount 1][text2WordCount 1];for (int i text1WordCount - 1; i 0; i--) {for (int j text2WordCount - 1; j 0; j--) {if (text1Words[i].equals(text2Words[j])){solutionMatrix[i][j] solutionMatrix[i 1][j 1] 1;}else {solutionMatrix[i][j] Math.max(solutionMatrix[i 1][j],solutionMatrix[i][j 1]);}}}int i 0, j 0;ArrayListString lcsResultList new ArrayListString();while (i text1WordCount j text2WordCount) {if (text1Words[i].equals(text2Words[j])) {lcsResultList.add(text2Words[j]);i;j;} else if (solutionMatrix[i 1][j] solutionMatrix[i][j 1]) {i;}else {j;}}return lcsResultList;}/*** Normalizes given string by deleting \n, \t and extra spaces.* * param text - initial string* return - normalized string*/private String normalizeText(String text) {text text.trim();text text.replace(\n, );text text.replace(\t, );while (text.contains( )) {text text.replace( , );}return text;}/*** Returns colored inserted/deleted text representation of given two texts.* Uses longestCommonSubsequenceList to determine colored sections.** param text1* param text2* param lcsList* param insertColor* param deleteColor* return - colored result text*/private String markTextDifferences(String text1, String text2,ArrayListString lcsList, String insertColor, String deleteColor) {StringBuffer stringBuffer new StringBuffer();if (text1 ! null lcsList ! null) {String[] text1Words text1.split( );String[] text2Words text2.split( );int i 0, j 0, word1LastIndex 0, word2LastIndex 0;for (int k 0; k lcsList.size(); k) {for (i word1LastIndex, j word2LastIndex;i text1Words.length j text2Words.length;) {if (text1Words[i].equals(lcsList.get(k)) text2Words[j].equals(lcsList.get(k))) {stringBuffer.append(SPAN lcsList.get(k) /SPAN);word1LastIndex i 1;word2LastIndex j 1;i text1Words.length;j text2Words.length;}else if (!text1Words[i].equals(lcsList.get(k))) {for (; i text1Words.length !text1Words[i].equals(lcsList.get(k)); i) {stringBuffer.append(SPAN styleBACKGROUND-COLOR: deleteColor text1Words[i] /SPAN);}} else if (!text2Words[j].equals(lcsList.get(k))) {for (; j text2Words.length !text2Words[j].equals(lcsList.get(k)), j) {stringBuffer.append(SPAN styleBACKGROUND-COLOR: insertColor text2Words[j] /SPAN);}}}}for (; word1LastIndex text1Words.length; word1LastIndex) {stringBuffer.append(SPAN styleBACKGROUND-COLOR: deleteColor text1Words[word1LastIndex] /SPAN);}for (; word2LastIndex text2Words.length; word2LastIndex) {stringBuffer.append(SPAN styleBACKGROUND-COLOR: insertColor text2Words[word2LastIndex] /SPAN);}}return stringBuffer.toString();} } 参考我们的JCG合作伙伴 Cagdas Basaraner在CodeBuild博客上使用LCS方法实现了通用文本比较工具 。 翻译自: https://www.javacodegeeks.com/2012/05/generic-text-comparison-tool-with-lcs.html
http://wiki.neutronadmin.com/news/451230/

相关文章:

  • 江门建设建筑网站网站建设服务合同范本
  • 济南网站优化公司电话北京网站制作设计推广公司
  • 重庆做网站重庆做网站天心区网站建设公司
  • 网站平台建设策划网站设计的公司选哪家
  • 宗亲网站建设建议地图拍摄街景用什么设备拍的
  • wordpress怎样优化3一个新网站要怎么优化
  • 免费行情网站链接南京网站制作设计
  • rdm响应式网站开发校园门户网站 建设方案
  • it美工做网站今天重大新闻头条新闻
  • 东莞网站推广哪些线上营销渠道
  • 网站建设数据库建设国外设计网站怎么进入
  • 衡阳网站设计公司用python做网站的多吗
  • 给个做的网站wordpress与phpstudy安装
  • 菏泽建设职业中等专业学校官方网站青岛网站建设¥青岛博采网络
  • 建立企业网站价格网站用什么空间好
  • 找网站公司企业备案软件开发需要哪些过程
  • 做徽章的网站wordpress php文件上传
  • 目前会展相关网站的建设情况口碑营销怎么做
  • 2017网站发展趋势wordpress白天黑夜切换
  • 企业网站建设的误区主要有珠宝设计网站
  • 网站设计哪家口碑好档案信息网站建设的意义
  • 企业网站模板源码wordpress知言主题
  • 建设银行北京招聘网站南京网站建设 seo
  • 柳城企业网站制作哪家好seo排名优化什么意思
  • 俄罗斯网站制作推广一个网站周期
  • 广告网站设计哪家快wordpress友情链接函数
  • 常见的网站类型有网站建设365
  • 建设学习网站合肥房产网贝壳
  • 天津网站建设教程我想出租做房 请问哪个网站好些
  • 佛山制作网站公司吗濮阳房产网