废话不多说了 , 直接给大家贴代码了 具体代码如下所述 :
пакет com.gdh.backtext; import java.util.hashmap; import java.util.map; import java.util.map.entry; public class backtex 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;} public map <символ, integer> counttring () {map <символ, integer> map = new hashmap <> (); int count = 0; String temp = new String (); for (int i = 0; i <text.length (); i ++) {if (temp.indexof (text.charat (i), 0) <0) {temp+= text.charat (i); }} map.clear (); for (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); count = 0; }} // 循环打印 for (entry <символ, integer> item: map.entryset ()) {System.out.println ("字符:" + item.getKey () + "值:" + item.getValue ()); } return Map; } public String convert () {int chectsum = 0; int itemCount = 0; Карта <символ, целое число> map = counttring (); для (intpirt <символ, Integer> Item: map.EntrySet ()) {chectsum+= item.getValue (); if (item.getValue () %2! = 0) itemCount ++; } if (itemCount> 1) {System.out.println ("该字符串不能转换为回文字"); вернуть ноль; } StringBuffer temp = new StringBuffer (text); // 线程安全 // stringBuilder temp = new StringBuilder (); // 线程非安全 int begIdx = 0; int endidx = контрольная сумма-1; Символ ключа = null; логический флаг = false; for (intpirt <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 (); flag = true; продолжать; }}} 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 = new BackText ("1122334455667788990"); 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 版本) , 希望对大家有所帮助 如果大家有任何疑问欢迎给我留言 , 小编会及时回复大家的! 小编会及时回复大家的!