{"id":3110,"date":"2018-09-26T11:22:04","date_gmt":"2018-09-26T03:22:04","guid":{"rendered":"http:\/\/www.xttblog.com\/?p=3110"},"modified":"2018-09-26T11:52:17","modified_gmt":"2018-09-26T03:52:17","slug":"java-11-string-%e5%ad%97%e7%ac%a6%e4%b8%b2%e6%96%b0%e5%a2%9e-api-%e6%95%99%e7%a8%8b","status":"publish","type":"post","link":"https:\/\/www.xttblog.com\/?p=3110","title":{"rendered":"Java 11 String \u5b57\u7b26\u4e32\u65b0\u589e API \u6559\u7a0b"},"content":{"rendered":"<p>\n\tString \u5b57\u7b26\u4e32\u8fd9\u4e2a\u7c7b\u76f8\u4fe1\u662f\u5927\u5bb6\u7528\u8fc7\u7684\u6700\u591a\u7684\u7c7b\u3002\u968f\u7740 java 11 \u7684\u66f4\u65b0\uff0cOracle \u5bf9 String \u7c7b\u7ec8\u4e8e\u505a\u4e86\u66f4\u65b0\u3002\u4e3a\u4ec0\u4e48\u8bf4\u7ec8\u4e8e\u505a\u4e86\u66f4\u65b0\u5462\uff1f\u56e0\u4e3a\u81ea\u4ece java 6 \u4e4b\u540e\uff0cString \u7c7b\u518d\u4e5f\u6ca1\u88ab\u66f4\u65b0\u8fc7\u3002\u90a3\u4e48\u8fd9\u6b21\u66f4\u65b0\u4e86\u54ea\u4e9b\u5185\u5bb9\u5462\uff1f\u9605\u8bfb\u672c\u6587\uff0c\u6211\u4eec\u4e00\u8d77\u6765\u770b\u770b\u5177\u4f53\u505a\u4e86\u54ea\u4e9b\u66f4\u65b0\u5427\uff01\n<\/p>\n<p>\n\t<img decoding=\"async\" alt=\"java 11\" src=\"https:\/\/raw.githubusercontent.com\/xmt1139057136\/xttblog\/master\/java11.jpg\" style=\"width: 640px;height: 426px\" \/>\n<\/p>\n<h2 id=\"toc_1\">\n\trepeat() \u65b9\u6cd5<br \/>\n<\/h2>\n<p>\n\t\u65b0\u589e\u7684 repeat() \u65b9\u6cd5\uff0c\u80fd\u591f\u8ba9\u6211\u4eec\u5feb\u901f\u7684\u590d\u5236\u591a\u4e2a\u5b50\u5b57\u7b26\u4e32\u3002\u7528\u6cd5\u548c\u6548\u679c\u5982\u4e0b\uff1a\n<\/p>\n<pre class=\"brush:java;\">\r\nvar string = &quot;www.xttblog.com \u4e1a\u4f59\u8349 &quot;;\r\nvar result = string.repeat(2); \/\/www.xttblog.com \u4e1a\u4f59\u8349 www.xttblog.com \u4e1a\u4f59\u8349 <\/pre>\n<p>\n\t\u6839\u636e repeat() \u65b9\u6cd5\uff0c\u6211\u4eec\u53ef\u4ee5\u5f97\u5230\u4e00\u4e2a\u7a7a\u7684\u5b57\u7b26\u4e32\u3002\u53ea\u9700\u628a\u53c2\u6570 2 \u6539\u4e3a 0 \u5373\u53ef\u3002\u7c7b\u4f3c\u4e0b\u9762\u7684\u7528\u6cd5\uff1a\n<\/p>\n<pre class=\"brush:java;\">\r\nvar string = &quot;www.xttblog.com \u4e1a\u4f59\u8349 &quot;;\r\nvar result = string.repeat(0);\r\nassertThat(result).isEqualTo(&quot;&quot;);<\/pre>\n<p>\n\t\u5982\u679c repeat() \u65b9\u6cd5\u7684\u53c2\u6570\u662f Integer.MAX_VALUE\uff0c\u90a3\u4e48\u5b83\u4e5f\u8fd4\u56de\u4e00\u4e2a\u7a7a\u5b57\u7b26\u4e32\u3002\n<\/p>\n<pre class=\"brush:java;\">\r\nvar string = &quot;www.xttblog.com \u4e1a\u4f59\u8349 &quot;;\r\nvar result = string.repeat(Integer.MAX_VALUE);\r\nassertThat(result).isEqualTo(&quot;&quot;);<\/pre>\n<p>\n\t\u4ee5\u4e0b\u662f java 11 String \u5b57\u7b26\u4e32\u7c7b repeat() \u65b9\u6cd5\u7684\u6e90\u7801\uff1a\n<\/p>\n<pre class=\"brush:java;\">\r\npublic String repeat(int count) {\r\n    if (count &lt; 0) {\r\n        throw new IllegalArgumentException(&quot;count is negative: &quot; + count);\r\n    }\r\n    if (count == 1) {\r\n        return this;\r\n    }\r\n    final int len = value.length;\r\n    if (len == 0 || count == 0) {\r\n        return &quot;&quot;;\r\n    }\r\n    if (len == 1) {\r\n        final byte[] single = new byte[count];\r\n        Arrays.fill(single, value[0]);\r\n        return new String(single, coder);\r\n    }\r\n    if (Integer.MAX_VALUE \/ count &lt; len) {\r\n        throw new OutOfMemoryError(&quot;Repeating &quot; + len + &quot; bytes String &quot; + count +\r\n                &quot; times will produce a String exceeding maximum size.&quot;);\r\n    }\r\n    final int limit = len * count;\r\n    final byte[] multiple = new byte[limit];\r\n    System.arraycopy(value, 0, multiple, 0, len);\r\n    int copied = len;\r\n    for (; copied &lt; limit - copied; copied &lt;&lt;= 1) {\r\n        System.arraycopy(multiple, 0, multiple, copied, copied);\r\n    }\r\n    System.arraycopy(multiple, 0, multiple, copied, limit - copied);\r\n    return new String(multiple, coder);\r\n}<\/pre>\n<p>\n\t\u53ef\u4ee5\u770b\u5230\u5b83\u5e76\u4e0d\u662f\u4f9d\u8d56 StringBuilder \u6765\u5b9e\u73b0\u590d\u5236\u5b57\u7b26\u4e32\u7684\u3002\n<\/p>\n<h2 id=\"toc_2\">\n\tisBlank() \u65b9\u6cd5<br \/>\n<\/h2>\n<p>\n\tjava 11 \u4e2d\u65b0\u589e\u4e86 isBlank() \u65b9\u6cd5\uff0c\u4ece\u6b64\u4e4b\u540e\u6211\u4eec\u518d\u4e5f\u4e0d\u9700\u8981\u7b2c\u4e09\u65b9 jar \u5305\u6765\u652f\u6301\u5224\u65ad\u662f\u7a7a\u7684\u8fd8\u662f\u5305\u542b\u7a7a\u683c\u4e86\u3002\n<\/p>\n<pre class=\"brush:java;\">\r\nvar result = &quot; &quot;.isBlank(); \/\/ true<\/pre>\n<h2 id=\"toc_3\">\n\tstrip() \u65b9\u6cd5<br \/>\n<\/h2>\n<p>\n\t\u65b0\u589e\u7684 strip() \u65b9\u6cd5\u53ef\u4ee5\u53bb\u9664\u9996\u5c3e\u7a7a\u683c\u3002\n<\/p>\n<pre class=\"brush:java;\">\r\nassertThat(&quot;  \u4e1a\u4f59 \u8349  &quot;.strip()).isEqualTo(&quot;\u4e1a\u4f59 \u8349&quot;);<\/pre>\n<h2 id=\"toc_4\">\n\tstripLeading() \u65b9\u6cd5<br \/>\n<\/h2>\n<p>\n\tstripLeading() \u65b9\u6cd5\u53ef\u4ee5\u53bb\u9664\u5934\u90e8\u7a7a\u683c\u3002\n<\/p>\n<pre class=\"brush:java;\">\r\nassertThat(&quot;  \u4e1a\u4f59 \u8349  &quot;. stripLeading()).isEqualTo(&quot;\u4e1a\u4f59 \u8349  &quot;);<\/pre>\n<h2 id=\"toc_5\">\n\tstripTrailing() \u65b9\u6cd5<br \/>\n<\/h2>\n<p>\n\tstripTrailing() \u65b9\u6cd5\u53bb\u9664\u5c3e\u90e8\u7a7a\u683c\u3002\n<\/p>\n<pre class=\"brush:java;\">\r\nassertThat(&quot;  \u4e1a\u4f59 \u8349  &quot;. stripLeading()).isEqualTo(&quot;  \u4e1a\u4f59 \u8349&quot;);<\/pre>\n<p>\n\t\u770b\u5b8c\u4e0a\u9762\u7684 3 \u4e2a API\uff0c\u4f60\u53ef\u80fd\u8981\u95ee\uff0c\u5b83\u4eec\u662f\u4e0d\u662f\u548c trim() \u65b9\u6cd5\u7684\u4f5c\u7528\u91cd\u590d\u4e86\uff1f\u7b54\u6848\u662f\u5e76\u4e0d\u91cd\u590d\u3002strip \u662f\u4e00\u79cd\u57fa\u4e8e Unicode \u8bc6\u522b\u66ff\u4ee3\u65b9\u6848\u3002\n<\/p>\n<h2 id=\"toc_6\">\n\tlines() \u65b9\u6cd5<br \/>\n<\/h2>\n<p>\n\t\u4f7f\u7528 lines() \u65b9\u6cd5\uff0c\u6211\u4eec\u53ef\u4ee5\u8f7b\u677e\u5730\u5c06 String \u5b9e\u4f8b\u62c6\u5206\u4e3a Stream&nbsp;\uff1a\n<\/p>\n<pre class=\"brush:java;\">\r\n&quot;\u4e1a\u4f59\u8349\\nwww.xttblog.com&quot;.lines().forEach(System.out::println);\r\n\r\n\/\/ \u4e1a\u4f59\u8349\r\n\/\/ www.xttblog.com<\/pre>\n<h2 id=\"toc_7\">\n\t\u53c2\u8003\u8d44\u6599<br \/>\n<\/h2>\n<ul>\n<li>\n\t\t<a href=\"https:\/\/bugs.openjdk.java.net\/browse\/JDK-8200378\" name=\"String::strip, String::stripLeading, String::stripTrailing\" target=\"_blank\" title=\"String::strip, String::stripLeading, String::stripTrailing\">String::strip, String::stripLeading, String::stripTrailing<\/a>\n\t<\/li>\n<li>\n\t\t<a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/11\/docs\/api\/java.base\/java\/lang\/String.html\" name=\"java 11 String API \" target=\"_blank\" title=\"java 11 String API \">java 11 String API<\/a>\n\t<\/li>\n<\/ul>\n<!-- <audio autoplay=\"autoplay\" height=\"100\" width=\"100\" hidden=\"true\"><source src=\"https:\/\/c.coka.la\/orAvPR.mp3\" type=\"audio\/mp3\"\/><\/audio><img decoding=\"async\" src=\"https:\/\/images.weserv.nl\/?url=https:\/\/ws3.sinaimg.cn\/large\/8fa5dcfcgy1g4em3rzar5j20ib089ae0.jpg\" alt=\"\u4e1a\u4f59\u8349\u516c\u4f17\u53f7\"\/> --><p><!-- <img decoding=\"async\" src=\"https:\/\/raw.githubusercontent.com\/xmt1139057136\/xttblog\/master\/8fa5dcfcgy1g4em3rzar5j20ib089ae0.jpg\" alt=\"\u4e1a\u4f59\u8349\u516c\u4f17\u53f7\"\/>--><img decoding=\"async\" src=\"https:\/\/saas.51autoparts.cn\/api\/admin\/sys-file\/oss\/file?fileName=84db51f8561e448f9a4fda2eff0811f9.jpg\" alt=\"\u4e1a\u4f59\u8349\u516c\u4f17\u53f7\"\/><\/p><p>\u6700\u540e\uff0c\u6b22\u8fce\u5173\u6ce8\u6211\u7684\u4e2a\u4eba\u5fae\u4fe1\u516c\u4f17\u53f7\uff1a\u4e1a\u4f59\u8349\uff08yyucao\uff09\uff01<b>\u53ef\u52a0\u4f5c\u8005\u5fae\u4fe1\u53f7\uff1a<font color=\"red\">xttblog2<\/font>\u3002\u5907\u6ce8\uff1a\u201c1\u201d\uff0c\u6dfb\u52a0\u535a\u4e3b\u5fae\u4fe1\u62c9\u4f60\u8fdb\u5fae\u4fe1\u7fa4\u3002\u5907\u6ce8\u9519\u8bef\u4e0d\u4f1a\u540c\u610f\u597d\u53cb\u7533\u8bf7\u3002<\/b>\u518d\u6b21\u611f\u8c22\u60a8\u7684\u5173\u6ce8\uff01\u540e\u7eed\u6709\u7cbe\u5f69\u5185\u5bb9\u4f1a\u7b2c\u4e00\u65f6\u95f4\u53d1\u7ed9\u60a8\uff01\u539f\u521b\u6587\u7ae0\u6295\u7a3f\u8bf7\u53d1\u9001\u81f3532009913@qq.com\u90ae\u7bb1\u3002\u5546\u52a1\u5408\u4f5c\u4e5f\u53ef\u6dfb\u52a0\u4f5c\u8005\u5fae\u4fe1\u8fdb\u884c\u8054\u7cfb\uff01<\/p><p>\u672c\u6587\u539f\u6587\u51fa\u5904\uff1a<a href=\"https:\/\/www.xttblog.com\">\u4e1a\u4f59\u8349<\/a>\uff1a &raquo; <a href=\"https:\/\/www.xttblog.com\/?p=3110\">Java 11 String \u5b57\u7b26\u4e32\u65b0\u589e API \u6559\u7a0b<\/a><\/p><!-- <div class=\"bd-reward-stl\"><button id=\"bdRewardBtn\"><span><\/span><\/button><\/div> -->","protected":false},"excerpt":{"rendered":"<p>String \u5b57\u7b26\u4e32\u8fd9\u4e2a\u7c7b\u76f8\u4fe1\u662f\u5927\u5bb6\u7528\u8fc7\u7684\u6700\u591a\u7684\u7c7b\u3002\u968f\u7740 java 11 \u7684\u66f4\u65b0\uff0cOracle \u5bf9 Strin [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[1700,797,796,798,263],"class_list":["post-3110","post","type-post","status-publish","format-standard","hentry","category-java","tag-java-11","tag-string","tag-stringbuffer","tag-stringbuilder","tag-substring"],"_links":{"self":[{"href":"https:\/\/www.xttblog.com\/index.php?rest_route=\/wp\/v2\/posts\/3110","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xttblog.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xttblog.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xttblog.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xttblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3110"}],"version-history":[{"count":2,"href":"https:\/\/www.xttblog.com\/index.php?rest_route=\/wp\/v2\/posts\/3110\/revisions"}],"predecessor-version":[{"id":3112,"href":"https:\/\/www.xttblog.com\/index.php?rest_route=\/wp\/v2\/posts\/3110\/revisions\/3112"}],"wp:attachment":[{"href":"https:\/\/www.xttblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xttblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xttblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}