问题

输入多行字符串,要求删除所有行中的注释,并且输出行尾不可有空格。

例子

输入
apples, pears # and bananas
grapes
bananas !apples输出
apples, pears
grapes
bananas

我的代码

package codewars;import java.util.stream.Collectors;
import java.util.stream.Stream;
public class StripComments {public static String stripComments(String text, String[] commentSymbols) {return Stream.of(text.split("\n")).map(e -> {for (String commentSymbol : commentSymbols) {//删除注释e = e.indexOf(commentSymbol) >= 0? e.substring(0, e.indexOf(commentSymbol)) : e;}//删除行尾的空格return e.replaceAll("\\s$", "");}).collect(Collectors.joining("\n"));}public static void main(String[] args) {System.out.println(StripComments.stripComments("-", new String[] {"-"}));}
}

高手的代码

import java.util.Arrays;
import java.util.stream.Collectors;public class StripComments {public static String stripComments(String text, String[] commentSymbols) {String pattern = String.format("[ ]*([%s].*)?$",Arrays.stream( commentSymbols ).collect( Collectors.joining() ));return Arrays.stream( text.split( "\n" ) ).map( x -> x.replaceAll( pattern, "" ) ).collect( Collectors.joining( "\n" ) );}}

分析

高手的代码值得学习的地方是,用一个正则表达式去除注释,比较之下我的代码用了一个for循环,还需要定位注释符号的位置,这样消耗就比较大了,看来巧妙的运用正则表达式能够减少很多工作量

Strip Comments相关推荐

  1. php源代码压缩,PHP_PHP 源代码压缩小工具,使用方法:(在命令行运行) 复 - phpStudy...

    PHP 源代码压缩小工具 使用方法:(在命令行运行) 复制代码 代码如下: php compactor.php DESTINATION.php SOURCE.php 下载: compactor.php ...

  2. VC6.0环境设置说明

    VC环境设置说明 http://blog.sina.com.cn/s/blog_4bb59dc40100fcet.html 所谓:"工欲善其事,必先利其器".如果我们精于VC开发环 ...

  3. [NOTE] sqli-labs Adv Injections

    [NOTE] sqli-labs Adv Injections 文章目录 [NOTE] sqli-labs Adv Injections 前言 Less-21: Cookie injection - ...

  4. Licia:最全最实用的 JavaScript 工具库

    前言 在业务开发过程中,我们经常会重复使用日期格式化.cookie 操作.模板.浏览器判断.类型判断等功能.为了避免不同项目之间进行复制粘贴,可以将这些常用的函数封装到一起并发布 npm 包.在将近三 ...

  5. 编译选项—微软官方+各地总结

    优化 选项 用途 /O1 创建小代码. /O2 创建快速代码. /Ob 控制内联展开. /Od 禁用优化. /Og 使用全局优化. /Oi 生成内部函数. /Os 代码大小优先. /Ot 代码速度优先 ...

  6. Python爬虫实践: 获取百度贴吧内容

    最近开始整理python的资料,博主建立了一个qq群,希望给大家提供一个交流的平台 78486745 . 我们要爬取的网站是:百度贴吧,一个非常适合新人练手的地方,那么让我们开始吧. 本次要爬的贴吧是 ...

  7. Pyspider爬虫实例:1号店医药电商

    来源:InThirty 作者:白苏 简介:不务正业的智慧医疗产品经理一枚 源码:见评论区 目录 背景介绍 目标分析 准备工作 爬虫分析 爬虫小结 正文共6409字8图,预计阅读时间17分钟 背景介绍 ...

  8. 微软C/C++编译器选项

    -优化- /O1 最小化空间 minimize space /Op[-] 改善浮点数一致性 improve floating-pt consistency /O2 最大化速度 maximize spe ...

  9. 电影《战狼2》的可视化分析

    <战狼2>真心堪称中国的好莱坞大片,不管是打斗场景的展现,还是在特效的细节处理.吴京的那句"我只会花钱在武器上,花在取景上,永远不会花在小鲜肉上!",也是近年来,观众对 ...

最新文章

  1. 阿里财报:盒马和天猫超市是跑的最快的业务,阿里云离盈利只差临门一脚
  2. 【深度学习笔记】分类指标accuracy,recall,precision等的区别
  3. python控制画笔尺寸,Python画笔的属性及用法详解
  4. 《C++ Primer》14.3.1节练习
  5. Scrapy安装介绍
  6. ElasticSearch权威指南学习(结构化查询)
  7. poj 1511 Invitation Cards
  8. Algorithms Part 1-Question 6- 2SUM Median-数和以及中位数问题
  9. 北京地铁规划大全(图),买房子可以参考一下
  10. 安装php-solr扩展
  11. Java 虚拟机启动
  12. CryptoJS 加密
  13. 点歌系统源码 android,安卓盒子点歌系统代码
  14. 【回归预测-PNN分类】基于粒子群算法群优化概率神经网络算法实现空气质量评价预测附matlab代码
  15. 齐市青云小学三年级学计算机吗,齐齐哈尔市青云小学介绍
  16. win7配置magic mouse和keyboard
  17. Photo Album: 2008年5月-三亚爱琴海岸康年度假村-day2
  18. perf 性能分析实例——使用perf优化cache利用率
  19. day13-面向对象进阶
  20. P4379 [USACO18OPEN]Lemonade Line

热门文章

  1. ftp搭建方式-server-u安装步骤
  2. FIR数字滤波器的设计
  3. windows分区从动态卷转换回简单卷的保底型方法
  4. 每个程序员都要知道的35个jQuery小技巧
  5. 【2020.10.28SSL普及模拟赛T4】最大异或和【二进制 异或】
  6. 阿空实训日记——永别牢笼计划第一天 6月29日
  7. codeforces-742
  8. Android Rom
  9. linux安装psycopg2(源码安装)
  10. world计算机恢复出厂设置,互联网常识普及:刷机和恢复出厂设置有什么不同