{"id":1124,"date":"2022-10-24T22:44:52","date_gmt":"2022-10-24T14:44:52","guid":{"rendered":"https:\/\/qaqaq.top\/?p=1124"},"modified":"2022-12-19T20:14:17","modified_gmt":"2022-12-19T12:14:17","slug":"%e5%b8%b8%e7%94%a8%e7%b1%bb-string%e8%af%be%e5%90%8e%e7%ae%97%e6%b3%95%e9%a2%98%e7%9b%ae","status":"publish","type":"post","link":"https:\/\/qaqaq.top\/?p=1124","title":{"rendered":"\u5e38\u7528\u7c7b-String\u5176\u5b83\u8bfe\u540e\u7b97\u6cd5\u9898\u76ee"},"content":{"rendered":"\n<pre class=\"wp-block-code\"><code>package top.qaqaq.java.P475;\n\nimport org.junit.jupiter.api.Test;\n\nimport java.util.Arrays;\n\n\/*\n * 1.\u6a21\u62df\u4e00\u4e2atrim\u65b9\u6cd5\uff0c\u53bb\u9664\u5b57\u7b26\u4e32\u4e24\u7aef\u7684\u7a7a\u683c\u3002\n * \n * 2.\u5c06\u4e00\u4e2a\u5b57\u7b26\u4e32\u8fdb\u884c\u53cd\u8f6c\u3002\u5c06\u5b57\u7b26\u4e32\u4e2d\u6307\u5b9a\u90e8\u5206\u8fdb\u884c\u53cd\u8f6c\u3002\u6bd4\u5982\u5c06\u201cabcdefg\u201d\u53cd\u8f6c\u4e3a\u201dabfedcg\u201d\n * \n * 3.\u83b7\u53d6\u4e00\u4e2a\u5b57\u7b26\u4e32\u5728\u53e6\u4e00\u4e2a\u5b57\u7b26\u4e32\u4e2d\u51fa\u73b0\u7684\u6b21\u6570\u3002\n      \u6bd4\u5982\uff1a\u83b7\u53d6\u201cab\u201d\u5728 \u201ccdabkkcadkabkebfkabkskab\u201d    \n      \u4e2d\u51fa\u73b0\u7684\u6b21\u6570\n      \n4.\u83b7\u53d6\u4e24\u4e2a\u5b57\u7b26\u4e32\u4e2d\u6700\u5927\u76f8\u540c\u5b50\u4e32\u3002\u6bd4\u5982\uff1a\n   str1 = \"abcwerthelloyuiodef\u201c;str2 = \"cvhellobnm\"\/\/10\n   \u63d0\u793a\uff1a\u5c06\u77ed\u7684\u90a3\u4e2a\u4e32\u8fdb\u884c\u957f\u5ea6\u4f9d\u6b21\u9012\u51cf\u7684\u5b50\u4e32\u4e0e\u8f83\u957f  \n   \u7684\u4e32\u6bd4\u8f83\u3002\n\n5.\u5bf9\u5b57\u7b26\u4e32\u4e2d\u5b57\u7b26\u8fdb\u884c\u81ea\u7136\u987a\u5e8f\u6392\u5e8f\u3002\"abcwerthelloyuiodef\"\n\u63d0\u793a\uff1a\n1\uff09\u5b57\u7b26\u4e32\u53d8\u6210\u5b57\u7b26\u6570\u7ec4\u3002\n2\uff09\u5bf9\u6570\u7ec4\u6392\u5e8f\uff0c\u9009\u62e9\uff0c\u5192\u6ce1\uff0cArrays.sort(str.toCharArray());\n3\uff09\u5c06\u6392\u5e8f\u540e\u7684\u6570\u7ec4\u53d8\u6210\u5b57\u7b26\u4e32\u3002\n\n *\/\npublic class StringExer {\n\n\t\/\/ \u7b2c1\u9898\n\tpublic String myTrim(String str) {\n\t\tif (str != null) {\n\t\t\tint start = 0;\/\/ \u7528\u4e8e\u8bb0\u5f55\u4ece\u524d\u5f80\u540e\u9996\u6b21\u7d22\u5f15\u4f4d\u7f6e\u4e0d\u662f\u7a7a\u683c\u7684\u4f4d\u7f6e\u7684\u7d22\u5f15\n\t\t\tint end = str.length() - 1;\/\/ \u7528\u4e8e\u8bb0\u5f55\u4ece\u540e\u5f80\u524d\u9996\u6b21\u7d22\u5f15\u4f4d\u7f6e\u4e0d\u662f\u7a7a\u683c\u7684\u4f4d\u7f6e\u7684\u7d22\u5f15\n\n\t\t\twhile (start &lt; end &amp;&amp; str.charAt(start) == ' ') {\n\t\t\t\tstart++;\n\t\t\t}\n\n\t\t\twhile (start &lt; end &amp;&amp; str.charAt(end) == ' ') {\n\t\t\t\tend--;\n\t\t\t}\n\t\t\tif (str.charAt(start) == ' ') {\n\t\t\t\treturn \"\";\n\t\t\t}\n\n\t\t\treturn str.substring(start, end + 1);\n\t\t}\n\t\treturn null;\n\t}\n\n\t\/\/ \u7b2c2\u9898\n\t\/\/ \u65b9\u5f0f\u4e00\uff1a\n\tpublic String reverse1(String str, int start, int end) {\/\/ start:2,end:5\n\t\tif (str != null) {\n\t\t\t\/\/ 1.\n\t\t\tchar&#91;] charArray = str.toCharArray();\n\t\t\t\/\/ 2.\n\t\t\tfor (int i = start, j = end; i &lt; j; i++, j--) {\n\t\t\t\tchar temp = charArray&#91;i];\n\t\t\t\tcharArray&#91;i] = charArray&#91;j];\n\t\t\t\tcharArray&#91;j] = temp;\n\t\t\t}\n\t\t\t\/\/ 3.\n\t\t\treturn new String(charArray);\n\n\t\t}\n\t\treturn null;\n\n\t}\n\n\t\/\/ \u65b9\u5f0f\u4e8c\uff1a\n\tpublic String reverse2(String str, int start, int end) {\n\t\t\/\/ 1.\n\t\tString newStr = str.substring(0, start);\/\/ ab\n\t\t\/\/ 2.\n\t\tfor (int i = end; i &gt;= start; i--) {\n\t\t\tnewStr += str.charAt(i);\n\t\t} \/\/ abfedc\n\t\t\t\/\/ 3.\n\t\tnewStr += str.substring(end + 1);\n\t\treturn newStr;\n\t}\n\n\t\/\/ \u65b9\u5f0f\u4e09\uff1a\u63a8\u8350 \uff08\u76f8\u8f83\u4e8e\u65b9\u5f0f\u4e8c\u505a\u7684\u6539\u8fdb\uff09\n\tpublic String reverse3(String str, int start, int end) {\/\/ ArrayList list = new ArrayList(80);\n\t\t\/\/ 1.\n\t\tStringBuffer s = new StringBuffer(str.length());\n\t\t\/\/ 2.\n\t\ts.append(str.substring(0, start));\/\/ ab\n\t\t\/\/ 3.\n\t\tfor (int i = end; i &gt;= start; i--) {\n\t\t\ts.append(str.charAt(i));\n\t\t}\n\n\t\t\/\/ 4.\n\t\ts.append(str.substring(end + 1));\n\n\t\t\/\/ 5.\n\t\treturn s.toString();\n\n\t}\n\n\t@Test\n\tpublic void testReverse() {\n\t\tString str = \"abcdefg\";\n\t\tString str1 = reverse3(str, 2, 5);\n\t\tSystem.out.println(str1);\/\/ abfedcg\n\n\t}\n\n\t\/\/ \u7b2c3\u9898\n\t\/\/ \u5224\u65adstr2\u5728str1\u4e2d\u51fa\u73b0\u7684\u6b21\u6570\n\tpublic int getCount(String mainStr, String subStr) {\n\t\tif (mainStr.length() &gt;= subStr.length()) {\n\t\t\tint count = 0;\n\t\t\tint index = 0;\n\t\t\t\/\/ while((index = mainStr.indexOf(subStr)) != -1){\n\t\t\t\/\/ count++;\n\t\t\t\/\/ mainStr = mainStr.substring(index + subStr.length());\n\t\t\t\/\/ }\n\t\t\t\/\/ \u6539\u8fdb\uff1a\n\t\t\twhile ((index = mainStr.indexOf(subStr, index)) != -1) {\n\t\t\t\tindex += subStr.length();\n\t\t\t\tcount++;\n\t\t\t}\n\n\t\t\treturn count;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\n\t}\n\n\t@Test\n\tpublic void testGetCount() {\n\t\tString str1 = \"cdabkkcadkabkebfkabkskab\";\n\t\tString str2 = \"ab\";\n\t\tint count = getCount(str1, str2);\n\t\tSystem.out.println(count);\n\t}\n\n\t@Test\n\tpublic void testMyTrim() {\n\t\tString str = \"   a   \";\n\t\t\/\/ str = \" \";\n\t\tString newStr = myTrim(str);\n\t\tSystem.out.println(\"---\" + newStr + \"---\");\n\t}\n\n\t\/\/ \u7b2c4\u9898\n\t\/\/ \u5982\u679c\u53ea\u5b58\u5728\u4e00\u4e2a\u6700\u5927\u957f\u5ea6\u7684\u76f8\u540c\u5b50\u4e32\n\tpublic String getMaxSameSubString(String str1, String str2) {\n\t\tif (str1 != null &amp;&amp; str2 != null) {\n\t\t\tString maxStr = (str1.length() &gt; str2.length()) ? str1 : str2;\n\t\t\tString minStr = (str1.length() &gt; str2.length()) ? str2 : str1;\n\n\t\t\tint len = minStr.length();\n\n\t\t\tfor (int i = 0; i &lt; len; i++) {\/\/ 0 1 2 3 4 \u6b64\u5c42\u5faa\u73af\u51b3\u5b9a\u8981\u53bb\u51e0\u4e2a\u5b57\u7b26\n\n\t\t\t\tfor (int x = 0, y = len - i; y &lt;= len; x++, y++) {\n\n\t\t\t\t\tif (maxStr.contains(minStr.substring(x, y))) {\n\n\t\t\t\t\t\treturn minStr.substring(x, y);\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\t\/\/ \u5982\u679c\u5b58\u5728\u591a\u4e2a\u957f\u5ea6\u76f8\u540c\u7684\u6700\u5927\u76f8\u540c\u5b50\u4e32\n\t\/\/ \u6b64\u65f6\u5148\u8fd4\u56deString&#91;]\uff0c\u540e\u9762\u53ef\u4ee5\u7528\u96c6\u5408\u4e2d\u7684ArrayList\u66ff\u6362\uff0c\u8f83\u65b9\u4fbf\n\tpublic String&#91;] getMaxSameSubString1(String str1, String str2) {\n\t\tif (str1 != null &amp;&amp; str2 != null) {\n\t\t\tStringBuffer sBuffer = new StringBuffer();\n\t\t\tString maxString = (str1.length() &gt; str2.length()) ? str1 : str2;\n\t\t\tString minString = (str1.length() &gt; str2.length()) ? str2 : str1;\n\n\t\t\tint len = minString.length();\n\t\t\tfor (int i = 0; i &lt; len; i++) {\n\t\t\t\tfor (int x = 0, y = len - i; y &lt;= len; x++, y++) {\n\t\t\t\t\tString subString = minString.substring(x, y);\n\t\t\t\t\tif (maxString.contains(subString)) {\n\t\t\t\t\t\tsBuffer.append(subString + \",\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tSystem.out.println(sBuffer);\n\t\t\t\tif (sBuffer.length() != 0) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tString&#91;] split = sBuffer.toString().replaceAll(\",$\", \"\").split(\"\\\\,\");\n\t\t\treturn split;\n\t\t}\n\n\t\treturn null;\n\t}\n\t\/\/ \u5982\u679c\u5b58\u5728\u591a\u4e2a\u957f\u5ea6\u76f8\u540c\u7684\u6700\u5927\u76f8\u540c\u5b50\u4e32\uff1a\u4f7f\u7528ArrayList\n\/\/\tpublic List&lt;String&gt; getMaxSameSubString1(String str1, String str2) {\n\/\/\t\tif (str1 != null &amp;&amp; str2 != null) {\n\/\/\t\t\tList&lt;String&gt; list = new ArrayList&lt;String&gt;();\n\/\/\t\t\tString maxString = (str1.length() &gt; str2.length()) ? str1 : str2;\n\/\/\t\t\tString minString = (str1.length() &gt; str2.length()) ? str2 : str1;\n\/\/\n\/\/\t\t\tint len = minString.length();\n\/\/\t\t\tfor (int i = 0; i &lt; len; i++) {\n\/\/\t\t\t\tfor (int x = 0, y = len - i; y &lt;= len; x++, y++) {\n\/\/\t\t\t\t\tString subString = minString.substring(x, y);\n\/\/\t\t\t\t\tif (maxString.contains(subString)) {\n\/\/\t\t\t\t\t\tlist.add(subString);\n\/\/\t\t\t\t\t}\n\/\/\t\t\t\t}\n\/\/\t\t\t\tif (list.size() != 0) {\n\/\/\t\t\t\t\tbreak;\n\/\/\t\t\t\t}\n\/\/\t\t\t}\n\/\/\t\t\treturn list;\n\/\/\t\t}\n\/\/\n\/\/\t\treturn null;\n\/\/\t}\n\n\t@Test\n\tpublic void testGetMaxSameSubString() {\n\t\tString str1 = \"abcwerthelloyuiodef\";\n\t\tString str2 = \"cvhellobnmiodef\";\n\t\tString&#91;] strs = getMaxSameSubString1(str1, str2);\n\t\tSystem.out.println(Arrays.toString(strs));\n\t}\n\n\t\/\/ \u7b2c5\u9898\n\t@Test\n\tpublic void testSort() {\n\t\tString str = \"abcwerthelloyuiodef\";\n\t\tchar&#91;] arr = str.toCharArray();\n\t\tArrays.sort(arr);\n\n\t\tString newStr = new String(arr);\n\t\tSystem.out.println(newStr);\n\t}\n}\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[46],"class_list":["post-1124","post","type-post","status-publish","format-standard","hentry","category-java-code","tag-java"],"_links":{"self":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts\/1124"}],"collection":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1124"}],"version-history":[{"count":2,"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts\/1124\/revisions"}],"predecessor-version":[{"id":2662,"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts\/1124\/revisions\/2662"}],"wp:attachment":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1124"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1124"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1124"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}