美国1亿打造最强AI
|
输出结果如下所示: 二王默沉 多说一句,StringBuffer 和 StringBuilder 很相似,前者是同步的,所有 public 方法都加了 synchronized 关键字,可以在多线程中使用;后者是不同步的,没有 synchronized 关键字,所以性能更佳,没有并发要求的话,就用 StringBuilder。 03、如何判断一个字符串是前后对称的?
什么意思呢?就好像一个字符串,前后一折,是对称的。就像你站在镜子前,看到了一个玉树临风、闭月羞花的自己。 有没有很厉害?一行代码就搞定。第一个参数为键,第二个参数为值,第三个参数是一个 BiFunction,意思是,如果键已经存在了,就重新根据 BiFunction 计算新的值。 如果字符是第一次出现,就赋值为 1;否则,就把之前的值 sum 1。 02、如何反转字符串?
如果同学们对 StringBuilder 和 StringBuffer 很熟悉的话,这道题就很简单,直接 reverse() 就完事,对不对? 一下我的思路: 1)声明一个 LinkedHashMap,也可以用 HashMap,不过前者可以保持字符串拆分后的顺序,结果看起来更一目了然。 为什么要用 Map 呢?因为 Map 的 key 是不允许重复的,刚好可以对重复的字符进行数量的累加。 2)把字符串拆分成字符,进行遍历。 3)如果 key 为 null 的话,就表明它的数量要 +1;否则的话,就在之前的值上 +1,然后重新 put 到 Map 中,这样就覆盖了之前的字符数量。 思路很清晰,对不对?忍不住给自己鼓个掌。
那,JDK 8 之后,Map 新增了一个很厉害的方法 merge(),一次性为多个键赋值: 跨平台的 seq,用户生成数字序列。
测试暂停,进入子 Shell。
测试用例结束。 十 扩展 Sharness Sharness 提供了扩展功能。用户在 sharness.d 目录中添加以 .sh 结尾的脚本文件,即可对 Sharness 进行扩展。例如:
例如:测试脚本在工作区下创建了一个仓库(git init my.repo),想要在该仓库下执行 git clean,却忘了进入到 my.repo 子目录再执行,结果导致待测试项目中丢失文件。
如:test_tick 方法,可以设置 GIT_AUTHOR_DATE、GIT_COMMITTER_DATE 等环境变量,确保测试脚本多次运行时提交时间的一致性,进而产生一致的提交ID。
例如 git-repo 项目为了避免工作区逃逸,在 trash directory.* 目录下创建 .repo 文件。 十一 Sharness 在项目中的实战 git-repo 是一个命令行工具,非常适合使用 sharness 测试框架编写测试用例。参见[6]。 对于非命令行工具,或者为了测试内置函数,需要先封装一个或多个 fake app,再调用封装的命令行工具进行测试。例如在为 Git 项目开发 proc-receive 钩子扩展时,先开发一个 fake app[7]。 之后再编写测试,调用 fake app(test-tool proc-receive),帮助完成测试用例的开发。参见下列提交中的测试用例[8]。
还可以使用一些 Shell 编程技巧,在多个测试文件中复用测试用例。例如如下测试用例在测试 HTTP 协议和本地协议时,复用了同一套测试用例(t5411目录下的测试脚本)[9]。 (编辑:南昌站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
