最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2016年10月01日 10:50:07   作者:高殿華  
本文給大家分享一段java代碼關(guān)于回文字算法的實例代碼,代碼簡單易懂,需要的朋友一起看看吧

廢話不多說了,直接給大家貼代碼了,具體代碼如下所述:

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;
    } 
  }
  //循環(huán)打印 
  for(Entry<Character,Integer> item:map.entrySet()){
    System.out.println("字符:" + item.getKey() + " 值:" + 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("該字符串不能轉(zhuǎn)換為回文字");
    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<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("該字符串不是回文字");
    else
      System.out.println("該字符串是回文字");
    String dest=new String();
    System.out.println("開始轉(zhuǎn)換...");
    dest=bt.convert( ) ;
    System.out.print("轉(zhuǎn)換后的結(jié)果為:");
    System.out.println(dest);
  }
}

以上所述是小編給大家介紹的Java版本的回文字算法(java版本),希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!

相關(guān)文章

  • 關(guān)于工廠方法模式的Java實現(xiàn)

    關(guān)于工廠方法模式的Java實現(xiàn)

    這篇文章主要介紹了關(guān)于工廠方法模式的Java實現(xiàn)講解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 一起來學(xué)習(xí)Java的棧和隊列

    一起來學(xué)習(xí)Java的棧和隊列

    這篇文章主要為大家詳細(xì)介紹了Java的棧和隊列,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Spring Cloud Hystrix入門和Hystrix命令原理分析

    Spring Cloud Hystrix入門和Hystrix命令原理分析

    這篇文章主要介紹了Spring Cloud Hystrix入門和Hystrix命令原理分析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Java java.lang.ExceptionInInitializerError 錯誤如何解決

    Java java.lang.ExceptionInInitializerError 錯誤如何解決

    這篇文章主要介紹了 Java java.lang.ExceptionInInitializerError 錯誤如何解決的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • 關(guān)于springboot整合swagger問題及解決方法

    關(guān)于springboot整合swagger問題及解決方法

    這篇文章主要介紹了關(guān)于springboot整合swagger問題及解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • 淺析Java中的WeakHashMap

    淺析Java中的WeakHashMap

    這篇文章主要介紹了淺析Java中的WeakHashMap,WeakHashMap其實和HashMap大多數(shù)行為是一樣的,只是WeakHashMap不會阻止GC回收key對象,那么WeakHashMap是怎么做到的呢,這就是我們研究的主要問題,需要的朋友可以參考下
    2023-09-09
  • Java如何使用ConfigurationProperties獲取yml中的配置

    Java如何使用ConfigurationProperties獲取yml中的配置

    這篇文章主要介紹了Java如何使用ConfigurationProperties獲取yml中的配置,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java如何遠(yuǎn)程調(diào)用對方接口

    Java如何遠(yuǎn)程調(diào)用對方接口

    這篇文章主要介紹了Java如何遠(yuǎn)程調(diào)用對方接口問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java數(shù)據(jù)結(jié)構(gòu)之棧的詳解

    Java數(shù)據(jù)結(jié)構(gòu)之棧的詳解

    這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之棧簡單操作的相關(guān)資料,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-09-09
  • java實現(xiàn)識別二維碼圖片功能

    java實現(xiàn)識別二維碼圖片功能

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)識別二維碼圖片功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04

最新評論

南昌县| 临猗县| 平原县| 沙坪坝区| 新巴尔虎左旗| 涿鹿县| 四会市| 伊宁市| 彭阳县| 宿州市| 巴彦淖尔市| 岐山县| 罗江县| 贵港市| 聊城市| 诸暨市| 安化县| 嵊泗县| 闽侯县| 顺平县| 昌宁县| 开江县| 唐河县| 肇州县| 大理市| 长沙县| 杨浦区| 城市| 儋州市| 嘉兴市| 南和县| 泽库县| 肥城市| 寿宁县| 视频| 平果县| 额济纳旗| 陆良县| 天镇县| 远安县| 峨眉山市|