字符串中多关键字标记输出html

字符串中多关键字标记输出html

方法一
利用replace方法,替换关键字达到相关目的(正则的利用)

//对关键字进行蓝色标记
// keywords为关键字的一个集合
String afterMark= "";
afterMark= originStr;
for(int i=0;i< keywords.length;i++){
if(originStr.contains(keywords[i])){
afterMark=  afterMark.replace(keywords[i],"<span style=\"color:#0000ff\">"+keywords[i]+"</span>");
}
}           
System.out.println("afterMark=="+afterMark);

方法二
这里用的是递归的方法,因为关键字它出现的地方一次次数都是不可预测的因素。
这里讲一下思路,一遍大家更好的理解
1、找出字符串中出现的关键字,这样就不用每次都找那么多没用的数据去匹配;
2、找出第一个关键字出现的地方并标记,以此类推,截取,然后再找出第一个关键字出现的地方,哝,你看这不就是需要递归了,然后方法应运而生;
3、找个合适的方法拼接输出就可以了,想到这个不由想到了字符串拼接神器–StringBuffer,有兴趣可以自己百度看一下和StringBuilder,String之间的暧昧关系。

// 核心方法(递归灵魂方法)
/**
*originStr 元字符串
*keywords  关键字集合
*afterMark 用来接收标记过后的字符串
*/
public StringBuffer addMark(String originStr,List<String> keywords,StringBuffer afterMark){
int index = originStr.length();
// 用来存放最先出现的关键字
Strign keyword ="" 
// 循环找出关键字(上述思路观点1)
for(int i=0;i<keywords.size();i++){
    String theKeyword = keywords[i];
    int theIndex = orginStr.indexof(theKeyword );
    if(theIndex == -1){ // 直接就过滤掉了没有用的关键字
    keywords.remove(theIndex );
    }else if(theIndex < index){
    index = theIndex; // 谁才是真正的排在前面,第一个关键字
    keyword = theKeyword;
    }
}
// ----for循环结束之后找到第一个关键字及其为止

if(index == originStr.length()){ // 找不到关键字直接拼接返回(原样输出)
afterMark.append(originStr);
}else{ //有关键字---递归喽
afterMark.append(originStr(0,index));
//添加标记标签
afterMark.append("<span style=\"color:#0000ff\">"+originStr(index,index+keyword.length()));
String originStr1 = originStr.subString(index+keyword.length(),originStr.length()+"</span>");
addMark(originStr1,keywords,afterMark);
}
return afterMark;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,我可以回答这个问题。HTML 是一种用于创建网页的标记语言,它可以定义网页的结构和内容。CSS 是一种用于控制网页样式的语言,它可以定义网页的布局、颜色、字体等样式。JavaScript 是一种用于添加交互性和动态效果的编程语言,它可以让网页变得更加生动和有趣。ES6 是 JavaScript 的一个版本,它引入了许多新的语法和特性,使得编写 JavaScript 更加方便和高效。以上就是我对 HTML、CSS、JavaScript 和 ES6 的简要介绍。 ### 回答2: HTML 是超文本标记语言(HyperText Markup Language)的缩写,用于构建网页结构。通过使用标签(tag),可以定义网页的内容、布局和样式。HTML5 是HTML的最新版本,它引入了新的元素和属性,提供了更多的功能和灵活性。 CSS 是层叠样式表(Cascading Style Sheets)的缩写,用于为网页添加样式和布局。通过使用选择器(selector)和属性(property),可以控制网页元素的外观和位置。CSS3 是CSS的最新版本,它引入了新的特性,如过渡效果(transition),动画(animation)和阴影(box-shadow)。 JavaScript 是一种脚本语言,用于为网页添加交互性和动态效果。它可以通过HTML标签的事件(如点击、鼠标悬停等)来触发特定的行为。 JavaScript ES6 是 ECMAScript 6 的缩写,是 JavaScript 最新的标准版本,引入了很多新的语法和特性,如箭头函数(arrow functions)、常量与块级作用域(const 和 let)、模块化(modules)等。 HTML的基本结构如下: ```html <!DOCTYPE html> <html> <head> <title>网页标题</title> <link rel="stylesheet" href="style.css"> </head> <body> <header>页眉</header> <nav>导航栏</nav> <section>内容区域</section> <aside>侧边栏</aside> <footer>页脚</footer> <script src="script.js"></script> </body> </html> ``` 其,`<!DOCTYPE html>`声明文档类型为HTML5,`<html>`标签包裹整个网页,`<head>`标签用于定义元数据和引入外部样式表和脚本文件,`<title>`标签定义网页标题,`<link>`标签引入外部CSS文件,`<script>`标签引入外部JavaScript文件。 CSS的基本用法如下: ```css body { background-color: #f2f2f2; font-family: Arial, sans-serif; } header { background-color: #333; color: #fff; padding: 10px; } section { background-color: #fff; color: #333; padding: 20px; } ``` 以上代码设置了背景颜色、字体和间距等样式。 JavaScript的基本语法如下: ```javascript // 变量声明与赋值 let name = 'John'; const age = 25; // 函数定义 function sayHello() { console.log('Hello!'); } // 箭头函数 const greeting = message => { console.log(message); } sayHello(); // 输出:Hello! greeting('Welcome to my website!'); // 输出:Welcome to my website! ``` 以上代码定义了变量和函数,并调用了函数输出信息。 ES6还提供了许多其他的特性,如模板字符串(template literals)、解构赋值(destructuring assignment)、Promise等,用于提供更强大、更简洁的开发工具。使用HTML、CSS和JavaScript开发网页可以创造出丰富多样的用户体验和网页交互效果。 ### 回答3: HTML (超文本标记语言)是用于构建网页结构的标记语言。通过使用不同的标签和属性,可以创建标题、段落、链接、图像等元素。HTML提供了一种简单的方式来将文本、图像和其他内容组织在一起,并以逻辑和结构化的方式呈现。 CSS (层叠样式表)用于控制网页的布局和外观。它提供了一种样式语言,可以通过选择器和规则来定义网页元素的外观。通过使用CSS,您可以更改字体样式、背景颜色、间距和边框、响应式设计等。 JavaScript (JS) 是一种用于控制网页行为的脚本语言。它可以添加交互性和动态功能,例如验证表单、处理用户输入、创建动画等。通过JavaScript,您可以与用户交互并对网页进行动态更新。 ES6 (ECMAScript 6) 是JavaScript的一个新版本,提供了许多改进和新功能。它引入了let和const关键字来定义变量,箭头函数简化了函数的写法,模板字符串提供了更好的字符串插值,解构赋值方便了对象和数组的处理,扩展操作符可以方便地操作数组和对象等。 在学习这些技术的过程,以下是一些建议和要点: 1. 使用语义化的HTML标记,清晰地定义网页的结构和内容。 2. 使用外部样式表或内部样式表来管理和组织CSS代码,以增加可维护性。 3. 利用CSS选择器和样式规则来定义元素的外观和布局,使用层叠和继承规则来优化样式。 4. 使用一致的命名约定和组织方式来组织JavaScript代码,以提高代码的可读性和可维护性。 5. 使用函数和事件处理程序来实现交互性和动态行为,避免全局变量的污染。 6. 在ES6,尽量使用let和const来定义变量,使用箭头函数来简化函数的写法,利用模板字符串和解构赋值来提高代码的可读性。 7. 注意浏览器的兼容性问题,使用polyfills或者转译工具来支持旧版本的浏览器。 8. 通过阅读文档和教程,并实践编写代码来提高技能水平。 通过掌握HTML、CSS、JavaScript和ES6,您可以创建交互式和动态的网页,并为用户提供更好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值