Nonsense not much said, directly to everyone to paste the code, the specific code as follows:
Package 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;
Public map<character,integer> countstring () {map<character,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; } }
Loop print for (entry<character,integer> Item:map.entrySet ()) {System.out.println ("character:" + item.getkey () + "value:"
+ Item.getvalue ());
} return map;
Public String convert () {int checksum = 0;
int itemcount=0;
Map<character,integer> map=countstring ();
For (entry<character,integer> Item:map.entrySet ()) {checksum+=item.getvalue ();
if (Item.getvalue ()%2!= 0) itemcount++;
} if (ItemCount > 1) {System.out.println ("This string cannot be converted to back text");
return null;
} stringbuffer temp=new StringBuffer (text);//Thread Safety//stringbuilder temp=new StringBuilder ();//thread non-secure int begidx=0;
int endidx=checksum-1;
Character Key=null;
Boolean flag=false; For (entry<character,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;
Continue
}} 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 ("This string is not back text");
else System.out.println ("This string is back text");
String Dest=new string ();
System.out.println ("Start conversion ...");
Dest=bt.convert ();
System.out.print ("The result of the conversion is:");
System.out.println (dest); }
}
The above is a small series to introduce the Java version of the back-text algorithm (Java version), I hope to help you, if you have any questions welcome to my message, small series will promptly reply to everyone!