java回字方针_Java版本的回文字算法(java版本)

本文介绍了如何使用Java编程语言实现回文字符串判断及转换算法,通过实例展示了如何构造、计数子字符串并确保最终字符串是回文。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

废话不多说了,直接给大家贴代码了,具体代码如下所述:

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 countString(){

Map 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){

YHgOYjY   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 item:map.entrySet()){

System.out.println("字符:" + item.getKey() + " 值:" + item.getValue());

}

return map;

}

public String convert(){

int checksum = 0;

int itemcount=0;

Map map=countString();

for(Entry item:map.entrySet()){

checksum+=item.getValue();

if( item.getValue() %2 != 0)

itemcount++;

}

if( itemcount > 1 ){

System.ohttp://www.cppcns.comut.println("该字符串不能转换为回文字");

return null;

}

StringBuffer temp=new StringBuffer(text);//线程安全

//StringBuilder temp=new StringBuilder();//线程非安全

int begIdx=0;

int endIdx=checksum-1;

Character key=null;

boolean flag=false;

for(Entry item:map.entrySet()){

if( checksum % 2 ==0 ){

for(int i=0;i

temp.setCharAt(begIdx++, item.getKey());

temp.setCharAt(endIdx--, item.getKey());

}

}else{

if(item.getValue()%2==0 ){

for(int i=0;i

temp.setCharAt(begIdx++, item.getKey());

tYHgOYjYemp.setCharAt(endIdx--, item.getKey());

}

}else{

key=item.getKey();

flag=true;

continue;

}

}

}

if(flag)

{

for(int i=0;i

temp.setCharAt(begIdx++, key);

}

}

return temp.toString();

YHgOYjY}

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版本),希望http://www.cppcns.com对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

本文标题: Java版本的回文字算法(java版本)

本文地址: http://www.cppcns.com/ruanjian/java/165350.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值