废话不多说了 , 直接给大家贴代码了 , : :
Paket com.gdh.backText; import java.util.hashmap; import java.util.map; import java.util.map.entry; public class backtext {string text; public backText () {super (); this.text = null;} public backtext (string text) {super (); this.text = text;} public boolean isBackText () {for (int i = 0, j = text.length ()-i-1; i <= j; i ++, j-) {if (text.charat (i)! = text.charat (j)) {return false; }} return true;} peta publik <karakter, integer> countstring () {peta <karakter, integer> peta = hashmap baru <> (); Int Count = 0; String temp = string baru (); untuk (int i = 0; i <text.length (); i ++) {if (temp.indexof (text.charat (i), 0) <0) {temp+= text.charat (i); }} peta.clear (); untuk (int i = 0; i <temp.length (); i ++) {if (! map.containskey (temp.charat (i))) {for (int j = 0; j <text.length (); j ++) {if (text.charat (j) == temp.charat (i)) {Count ++; }} map.put (temp.charat (i), count); hitung = 0; }} // 循环打印 untuk (entri <karakter, integer> item: map.entryset ()) {System.out.println ("字符:" + item.getKey () + "值:" + item.getValue ()); } return peta; } public string convert () {int checksum = 0; int itemcount = 0; Peta <karakter, integer> peta = countstring (); untuk (entri <karakter, integer> item: map.entryset ()) {checksum+= item.getValue (); if (item.getValue () %2! = 0) ItemCount ++; } if (itemCount> 1) {System.out.println ("该字符串不能转换为回文字"); kembali nol; } StringBuffer temp = stringBuffer baru (teks); // 线程安全 // stringbuilder temp = stringBuilder baru (); // 线程非安全 int begidx = 0; int endidx = checksum-1; Kunci Karakter = NULL; bendera boolean = false; untuk (entri <karakter, integer> item: map.entryset ()) {if (checksum % 2 == 0) {for (int i = 0; i <item.getValue ()/2; i ++) {temp.setcharat (begidx ++, item.getKey ()); temp.setcharat (endidx--, item.getKey ()); }} else {if (item.getValue ()%2 == 0) {for (int i = 0; i <item.getValue ()/2; i ++) {temp.setcharat (begidx ++, item.getKey ()); temp.setcharat (endidx--, item.getKey ()); }} else {key = item.getKey (); bendera = true; melanjutkan; }}} if (flag) {for (int i = 0; i <map.get (key); i ++) {temp.setcharat (begidx ++, key); }} return temp.toString ();} public static void main (string [] args) {backtext bt = baru backtext ("11223344556677888990"); if (! bt.isbackText ()) system.out.println ("该字符串不是回文字"); else system.out.println ("该字符串是回文字"); String dest = new string (); System.out.println ("开始转换 ..."); dest = bt.convert (); System.out.print ("转换后的结果为:"); System.out.println (DEST); }}以上所述是小编给大家介绍的 java 版本的回文字算法 (java 版本) , 希望对大家有所帮助 , 如果大家有任何疑问欢迎给我留言 , 小编会及时回复大家的!