您好,登錄后才能下訂單哦!
這篇文章主要講解了“Java字符串中指定部分反轉的方式有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java字符串中指定部分反轉的方式有哪些”吧!
將“asdfghj”反轉為“ashgfdj”
調用String類中toCharArray()方法把字符串轉化為字符,而后開始時索引和結束時索引利用for()循環反轉指定字符,結束
public class StringDemo { public static void main(String[] args) { StringDemo stringDemo = new StringDemo(); String str1 = "asdfghj"; String str2 = stringDemo.reverse1(str1,2,5); System.out.println("反轉后為:" + str2); } public String reverse1(String str, int start, int end) { if (str != null) { char[] charArray = str.toCharArray(); for (int i = start, j = end; i < j; i++, j--) { char temp = charArray[i]; charArray[i] = charArray[j]; charArray[j] = temp; } return new String(charArray); } return null; } }
運行結果:
反轉后為:ashgfdj
將字符串分割為三部分:需反轉字符串前,需反轉字符串,需反轉字符串之后,調用substring()方法截取字符串,循環倒序遍歷需反轉字符串部分,后拼接這三部分
public static void main(String[] args) { StringDemo stringDemo = new StringDemo(); String str1 = "asdfghj"; String str2 = stringDemo.reverse1(str1,2,5); System.out.println("反轉后為:" + str2); } public String reverse1(String str, int start, int end) { // 第一部分 String newStr = str.substring(0, start); // 第二部分 for (int i = end; i >= start; i--) { newStr += str.charAt(i); } // 第三部分 newStr += str.substring(end + 1); return newStr; }
運行結果:
反轉后為:ashgfdj
相較于方式二的改進,用Stringbuilder中append()方法代替方式二中“+=”,效率更高
public class StringDemo { public static void main(String[] args) { StringDemo stringDemo = new StringDemo(); String str1 = "asdfghj"; String str2 = stringDemo.reverse1(str1,2,5); System.out.println("反轉后為:" + str2); } public String reverse1(String str, int start, int end) { StringBuffer s = new StringBuffer(str.length()); // 第一部分 s.append(str.substring(0, start)); // 第二部分 for (int i = end; i >= start; i--) { s.append(str.charAt(i)); } // 第三部分 s.append(str.substring(end + 1)); return s.toString(); } }
運行結果:
反轉后為:ashgfdj
注:在方式三中,僅是字符串反轉操作,不需要考慮線程安全問題,所以優先選擇StringBuilder
對字符串中指定的部分進行旋轉,如str="mmabcdfeffnn",指定abcdfeff部分進行旋轉,則得到字符串str="mmffefdcbann"。
其實現的思路,我是這樣的:將源字符串分為三部分,頭,待旋轉,尾,其中這三部分都需要進行采取截取的操作,而對于待旋轉的部分,這里采用了一個技巧,那就是借用了StringBuffer(String string)作為中介,并調用其中的reverse()方法進行旋轉。最后得到的三部分:頭,已旋轉,尾,進行連接concat(String string)操作即可。
代碼如下:
/** * 字符串指定的部分進行反轉 * @author zhonglinsen * 2016-3-1 下午 */ public class StringReverse { public static void main(String[] args) { String str="mmabcdefnn"; int start=2; int end=7; System.out.println("原先字符串: "+str); String strNew=strReverse(str, start, end); System.out.println("旋轉了指定位置后的字符串: "+strNew); } public static String strReverse(String strArg,int start,int end){ String strStart=strArg.substring(0,start); String strEnd=strArg.substring(end+1,strArg.length()); String strSub=strArg.substring(start, end+1); StringBuffer sb=new StringBuffer(strSub); strSub=sb.reverse().toString(); return strStart.concat(strSub).concat(strEnd); } }
感謝各位的閱讀,以上就是“Java字符串中指定部分反轉的方式有哪些”的內容了,經過本文的學習后,相信大家對Java字符串中指定部分反轉的方式有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。