java的decode_Java decode機試題

/**

*

* java編寫encode方法和decode方法,機試題 請你用java,c,c++

* 中任何一種語言實現兩個函數encode()和decode(),分別實現對字符串的變換和復原。

* 變換函數encode()順序考察以知字符串的字符,按以下規則逐組生成新字符串:

* (1)若已知字符串的當前字符不是大于0的數字字符,則復制該字符與新字符串中;

* (2)若以已知字符串的當前字符是一個數字字符,且他之后沒有后繼字符,則簡單地將它復制到新字符串中;

* (3)若以已知字符串的當前字符是一個大于0的數字字符,并且還有后繼字符,設該數字字符的面值為n,

* 則將它的后繼字符(包括后繼字符是一個數字字符)重復復制n+1 次到新字符串中; (4)以上述一次變換為一組,在不同組之間另插入一個下劃線'_'用于分隔;

* (5)若以知字符串中包含有下劃線'_',則變換為用"/UL". 例如:encode()函數對字符串24ab_2t2的變換結果為

* 444_aaaaa_a_b_/UL_ttt_t_2

*

*

*/

public class TestStringEncodeDemo {

public static String pub = "";

public static void decode(String str) {

/*

* 第一次操作判斷‘_’,以后所有的操作都是在遞歸后的字符串

*/

if (str.charAt(0) == '_') {

pub = pub + "/UL" + "_";

} else if ("123456789".indexOf(str.charAt(0)) == -1) {// 判斷是否是數值型的字符

pub += str.charAt(0) + "_";

} else if (str.length() == 1) {// 如果字符串只有一位跳出方法

pub += str;

return;

} else {

/*

* "123456789".indexOf(str.charAt(0))+1

* 通過這種方法能夠得到字符下標就是字符的值(因為是從0位開始的所有加1) 需求去的是字面值加1所有直接+2

*/

for (int i = 0; i < "123456789".indexOf(str.charAt(0)) + 2; i++) {

pub += str.charAt(1);// 取的是當前字符串的后一位

}

pub = pub + "_";

}

//遞歸截取字符串(代替了循環執行字符串的操作并且把判斷字符是否是int的值操作提取了)

if (str.length() != 1) {

TestStringEncodeDemo.decode(str.substring(1));

}

}

public static void encode(String str) {

String pub = "";

for (int i = 0; i < str.length(); i++) {

if (str.charAt(i) == '_') { // 若以知字符串中包含有下劃線'_',則變換為用"/UL"

pub += "/UL";

} else if ("123456789".indexOf(str.charAt(i), 0) == -1) {// 字符串的當前字符不是大于0的數字字符,復制該字符與新字符串中

pub += str.charAt(i);

// 拼接最后一位

} else if ("0123456789".indexOf(str.charAt(i), 0) != -1 && i == (str.length() - 1)) {

pub += str.charAt(i);

}

// 字符串的當前字符是一個大于0的數字字符,并且還有后繼字符,

else if ("0123456789".indexOf(str.charAt(i), 0) != -1 && i != str.length() - 1) {

int pool = Integer.parseInt(str.charAt(i) + "");

for (int j = 0; j <= pool; j++) {

pub += str.charAt(i + 1);

}

}

pub += "_";

}

pub = pub.substring(0, pub.length() - 1);

System.out.println(pub);

}

public static void main(String[] args) {

// char c = "12345678".charAt(0);

// System.out.println(Character.getNumericValue(c) + 2);

// System.out.println("12345678".charAt(0));

String str = "24ab_2tt";

decode(str);

System.out.println(pub);

encode(str);

}

}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271249.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271249.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271249.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

hrjava項目原型html_Mockplus for Mac(原型設計工具)

Mockplus for Mac是Mac平臺上一款簡單、快速的原型設計工具&#xff0c;無需任何編程&#xff0c;不需要任何編程基礎知識&#xff0c;幫你快速使用Mockplus設計圖形。Mockplus封裝了近200個組件&#xff0c;提供3000個以上的圖標素材。做圖時&#xff0c;只需要把這些組件放入…

Leetcode 給定一個數組,給定一個數字。返回數組中可以相加得到指定數字的兩個索引

問題內容是&#xff1a;給定一個數組&#xff0c;給定一個數字。返回數組中可以相加得到指定數字的兩個索引。 比如&#xff1a;給定nums [2, 7, 11, 15], target 9 那么要返回 [0, 1]&#xff0c;因為2 7 9 這道題的優解是&#xff0c;一次遍歷HashMap&#xff1a; 先去…

java 正則表達式 提取ip_java正則表達式提取地址中的ip和端口號

由于我需要用到java正則表達式提取地址中的ip和端口號&#xff0c;所以我就寫了一個demo&#xff0c;測試一下&#xff0c;下面是demopublic class Test0810_1 {public static void main(String[] args) {//通過控制板輸入想要輸入的地址&#xff0c;然后測試是否符合規則Scann…

SQL語言基礎:常用的數據查詢語句

1、創建表語法格式&#xff1a;creat table <表名> (<,列名><數據類型>[列級完整性約束條件]<,列名><數據類型>[列級完整性約束條件]...[,<表級完整性約束條件>]);列級完整性約束條件&#xff1a;主鍵、外鍵 、唯一 unique、檢查 、默認值…

兩個不同網段的局域網如何互通_不同網段之間如何通信?

計算機之前是如何實現互相通信的呢&#xff1f;正文首先&#xff0c;計算機之間通信人為設定一個準則&#xff0c;這個準則是什么呢&#xff1f;如果兩臺計算機在一個相同網段&#xff0c;不需要輔助設備(網關)的幫助&#xff0c;可以直接通信。如果兩臺計算機在不同網段&#…

Java是值傳遞還是引用傳遞?

Java是值傳遞&#xff1a; &#xff08;1&#xff09;基本類型作為參數傳遞時&#xff0c;是傳遞值的拷貝&#xff0c;無論你怎么改變這個拷貝&#xff0c;原值是不會改變的&#xff1b; &#xff08;2&#xff09;對象的引用作為參數傳遞時&#xff0c;是把對象在內存中的地址…

SpringCloud Gateway的組成結構

SpringCloud Gateway結構 SpringCloud Gateway的底層基于Netty&#xff0c;主要組成有Predicates&#xff08;謂詞或者斷言&#xff09;、Route&#xff08;路由&#xff09;、Filter&#xff08;過濾器&#xff09; 思維導圖----------SpringCloud Gateway的組成&#xff1a; …

java resource放入的文件沒有生成在classes中_快速部署版@開源在線考試系統一鍵生成各種題型試卷且實時判卷...

首先聲明此項目來自開源網&#xff0c;小編也是愛好者&#xff1b;閱讀本文之前相信已經閱讀過【開源在線考試系統一鍵生成各種題型試卷且可以實時判卷】開源在線考試系統一鍵生成各種題型試卷且可以實時判卷本文分享快速部署版jar包&#xff0c;原項目前后臺是單獨項目&#x…

java 三大框架面試題

1.Hibernate工作原理及為什么要用&#xff1f; 原理&#xff1a; 1.讀取并解析配置文件 2.讀取并解析映射信息&#xff0c;創建SessionFactory3.打開Session 4.創建事務Transation 5.持久化操作 6.提交事務 7.關閉Session 8.關閉SesstionFactory 為什么要用&#xff1a; 1. 對J…

SQL語言基礎:SQL中的數據完整性約束用法

前言數據庫的完整性是指數據庫正確性和相容性&#xff0c;是防止合法用戶使用數據庫時向數據庫加入不符合語義的數據&#xff0c;從而保證了數據庫中的數據是正確的&#xff0c;避免非法的更新操作。1、主鍵約束1.1 完整性約束條件完整性約束條件作用的對象有關系、元組、列三種…

SpringCloud Gateway的工作方式

SpringCloud Gateway工作方式 從官網的圖來看&#xff0c;并不是特別復雜&#xff0c;首先客戶端請求都會先經過Gateway Handler Mapping&#xff0c;匹配上就通過Gateway Web Handler轉給過濾器處理&#xff0c;過濾器分為PreFilter&#xff08;前置過濾器&#xff09;、PostF…

java制定年月日第幾天_(JAVA)輸入年月日,計算日期是今年的第幾天?

這個代碼非常正確&#xff0c;還解決了2月份等天數不對的問題。你可以試試看&#xff0c;手工代碼&#xff0c;記得采納&#xff0c;非常感謝。importjava.util.Scanner;publicclasspractice{publicstaticvoidmain(String[]args){ScannerscnewScanner(System.in);System.out.pr…

后端:414 Request-URI Too Large解決方案

目錄 一、get請求改為Post請求 二、調整前端請求參數的邏輯 三、服務器配置調整 3.1 Java項目 3.2 PHP項目&#xff1a; 3.3 Net項目 3.4 nginx配置文件修改內容&#xff1a; Web項目接口請求會出現414 Request-URI Too Large這個錯誤 下面給大家分享一下相關解決辦法&#xf…

面向對象和面向過程_程序員給你解釋:面向對象和面向過程的區別,到底是怎么回事?...

今天下午在一個組的項目回顧會議上&#xff0c;這個同事講了自己用DDD思想對三個模塊的重構。把之前在Service層的一些業務邏輯下沉到了領域層里&#xff0c;由之而引起的討論。部門經理&#xff1a;“其實你的業務邏輯總體并沒有少&#xff0c;只是把邊界重新劃分了一下。”一…

Android Bug分析系列:第三方平臺安裝app啟動后,home鍵回到桌面后點擊app啟動時會再次啟動入口類bug的原因剖析...

前言 前些天&#xff0c;測試MM發現了一個比較奇怪的bug。 具體表現是&#xff1a; 1、將app包通過電腦QQ傳送到手機QQ上面&#xff0c;點擊安裝&#xff0c;安裝后選擇打開app &#xff08;此間的應用邏輯應該是要觸發 【閃屏頁Activity】&#xff0c; 然后跳轉 【主頁Activit…

SQL語言基礎:SQL授權相關知識筆記?

1、數據控制數據控制是控制對用戶存取的權力&#xff0c;由DBA來決定。DBMS數據控制與功能&#xff1a;1、通過GRANT和REVOKE將授權通知系統&#xff0c;并存入數據字典。2、當用戶發起請求時&#xff0c;根據授權情況檢查是否執行操作請求。SQL標準包括 delete、insert、selec…

JVM的位置

對于JVM的位置&#xff1a; JVM是運行在操作系統之上的,它與硬件沒有直接的交互JVM是運行在操作系統之上的&#xff0c;與硬件沒有直接的交互&#xff0c;但是可以調用底層的硬件&#xff0c;用JIN &#xff08;Java本地接口調用底層硬件接口&#xff0c;了解下就好&#xff0…

word2010添加b5紙張大小_紙張幅面規格尺寸你了解嗎?

點擊藍色文字關注|十七的錨|(單位&#xff1a;mm)關于印前調整若紙張規格標記字母的前面加一個字母R(或S)時&#xff0c;是表示紙張沒有切毛邊&#xff0c;經過切邊修整后&#xff0c;將減少到標準尺寸&#xff0c;例如RA4(或SA4)表示不切邊紙張的尺寸為240mm*330mm&#xff0c…

future promise java_第四章 Future和Promise

Netty是一個異步網絡處理框架&#xff0c;在實現中大量使用了Future機制&#xff0c;并在Java自帶Future的基礎上&#xff0c;增加了Promise機制。這兩者的目的都是使異步編程更加方便使用。在閱讀源碼之前&#xff0c;我們需要對Future的機制有很清楚的認識。## 4.1 異步編程模…

在頁面最上面顯示當前登陸的狀態

首先先判斷一下session <li> <?php if(session(m_id)) : ?> 您好, <?php echo session(m_username); ?>[<a href"<?php echo U(Member/logout) ; ?>">退出</a>] <?php else : ?> 您好&#xff0c;歡迎來到京西&a…