字符串的綜合練習

1、練習-轉換羅馬數字

鍵盤錄入一個字符串

要求1:長度為小于等于9

要求2:只能是數字

將內容變成羅馬數字

下面是阿拉伯數字跟羅馬數字的對比關系:

Ⅰ-1

Ⅱ-2

Ⅲ-3

Ⅳ-4

Ⅴ-5

Ⅵ-6

Ⅶ-7

Ⅷ-8

Ⅸ-9

注意點:羅馬數字里面沒有0的,如果鍵盤錄入的數字包含0,可以變成”“(長度為0的字符串)

2、第一種解題思想(查表法)

package stringdemo;import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str;while (true) {System.out.println("請輸入一個字符串");str = sc.next();boolean flag = checkStr(str);if (flag) {break;} else {System.out.println("當前的字符串不符合規則,請重新輸入");continue;}}StringBuilder sb = new StringBuilder();for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);int number = c - 48;String s = changeLuoMa(number);sb.append(s);}System.out.println(sb);}/*Ⅰ-1   Ⅱ-2     Ⅲ-3     Ⅳ-4     Ⅴ-5     Ⅵ-6     Ⅶ-7     Ⅷ-8    Ⅸ-9
*/public static String changeLuoMa(int number) {String[] arr = {"", "Ⅰ", "Ⅱ", "Ⅲ", "Ⅳ", "Ⅴ", "Ⅵ", "Ⅶ", "Ⅷ", "Ⅸ"};return arr[number];}public static boolean checkStr(String string) {if (string.length() > 9) {return false;}for (int i = 0; i < string.length(); i++) {char c = string.charAt(i);if (c < '0' || c > '9') {return false;}}return true;}}
D:\Java\jdk-17\bin\java.exe "-javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\lib\idea_rt.jar=2084:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\bin" -Dfile.encoding=UTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\Exception stringdemo.Test
請輸入一個字符串
123456789
ⅠⅡⅢⅣⅤⅥⅦⅧⅨProcess finished with exit code 0

3、第二種解題思想(switch)

package stringdemo;import java.util.Scanner;public class TestCase {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str;while (true) {System.out.println("請輸入一個字符串");str = sc.next();boolean flag = checkStr(str);if (flag) {break;} else {System.out.println("當前的字符串不符合規則,請重新輸入");continue;}}StringBuilder sb = new StringBuilder();for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);String s = changeLuoMa(c);sb.append(s);}System.out.println(sb);}/*Ⅰ-1   Ⅱ-2     Ⅲ-3     Ⅳ-4     Ⅴ-5     Ⅵ-6     Ⅶ-7     Ⅷ-8    Ⅸ-9*/public static String changeLuoMa(char number) {String str = switch (number) {case '0' -> "";case '1' -> "Ⅰ";case '2' -> "Ⅱ";case '3' -> "Ⅲ";case '4' -> "Ⅳ";case '5' -> "Ⅴ";case '6' -> "Ⅵ";case '7' -> "Ⅶ";case '8' -> "Ⅷ";case '9' -> "Ⅸ";default -> str = "";};return str;}public static boolean checkStr(String string) {if (string.length() > 9) {return false;}for (int i = 0; i < string.length(); i++) {char c = string.charAt(i);if (c < '0' || c > '9') {return false;}}return true;}
}
D:\Java\jdk-17\bin\java.exe "-javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\lib\idea_rt.jar=2435:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\bin" -Dfile.encoding=UTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\Exception stringdemo.TestCase
請輸入一個字符串
123456789
ⅠⅡⅢⅣⅤⅥⅦⅧⅨProcess finished with exit code 0

4、調正字符串

給定兩個字符串,A和B

A的旋轉操作就是將A最左邊的字符移動到最右邊。

例如,若A='abcde',在移動一次之后結果就是'bcdea'。

如果在若干次調整操作之后,A能變成B,那么返回True。

如果不能匹配成功,則返回false

4.1、如果我們看到要修改字符串的內容,可以有兩種方法:

  1. 用subString進行截取,把左邊的字符截取出來拼接到右側去
  2. 可以把字符串先變成一個字符數組,然后調整字符數組里面數據,最后再把字符數組變成字符串。

4.1.1、第一種思路(subString)

?package stringdemo;public class Case1 {public static void main(String[] args) {String strA = "abcde";String strB = "cdeab";boolean result = check(strA, strB);System.out.println(result);}public static boolean check(String strA, String strB) {for (int i = 0; i < strA.length(); i++) {strA = rotate(strA);if (strA.equals(strB)) {return true;}}return false;}public static String rotate(String str) {char first = str.charAt(0);String end = str.substring(1);return end + first;}
}
D:\Java\jdk-17\bin\java.exe "-javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\lib\idea_rt.jar=3417:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\bin" -Dfile.encoding=UTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\Exception stringdemo.Case1
trueProcess finished with exit code 0?

4.1.2、第二種思路

package stringdemo;public class Case2 {public static void main(String[] args) {String strA = "abcde";String strB = "cdeab";boolean result = check(strA, strB);System.out.println(result);}public static boolean check(String strA, String strB) {for (int i = 0; i < strA.length(); i++) {strA = rotate(strA);if (strA.equals(strB)) {return true;}}return false;}public static String rotate(String str) {char[] arr = str.toCharArray();char first = arr[0];for (int i = 1; i < arr.length; i++) {arr[i - 1] = arr[i];}arr[arr.length - 1] = first;String result = new String(arr);return result;}
}
D:\Java\jdk-17\bin\java.exe "-javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\lib\idea_rt.jar=3381:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\bin" -Dfile.encoding=UTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\Exception stringdemo.Case2
trueProcess finished with exit code 0

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

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

相關文章

51單片機的管腳介紹

圖文介紹 純文字說明 單片機管腳相關結構及其作用如下 電源正極引腳 一般接5V電源&#xff0c;為單片機提供正常工作時的電壓。 電源負極引腳 接地。然后才開始工作。 時鐘引腳 18、19腳為時鐘引腳&#xff08;XTAL2、XTAL1&#xff09;。單片機內部有大量的數字電路&a…

SringBoot-響應

響應數據 如何加載響應數據呢 其實在SpringBoot&#xff0c;已經有名為RessponseBody的方法注解為我們提供的響應的方法&#xff0c;他的作用是將方法返回值直接響應&#xff0c;如果返回值類型為實體對象/集合&#xff0c;則會轉換為JSON格式響應。 而RestController已經在內…

Java真實面試題,offer已到手

關于學習 在黑馬程序員剛剛開始的時候學習盡頭非常足&#xff0c;到后面逐漸失去了一些興趣&#xff0c;以至于后面上課會出現走神等問題&#xff0c;但是畢業時后悔晚矣。等到開始學習項目一的時候&#xff0c;思路總會比別人慢一些&#xff0c;不看講義寫不出來代碼。 建議…

Lie group 專題:Lie 群

Lie group 專題&#xff1a;Lie 群 流形 流形的定義 一個m維流形是滿足以下條件的集合M&#xff1a;存在可數多個稱為坐標卡&#xff08;圖集&#xff09;的子集合族.以及映到的連通開子集上的一對一映射&#xff0c;,稱為局部坐標映射&#xff0c;滿足以下條件 坐標卡覆蓋M…

【Sklearn】基于多層感知器算法的數據分類預測(Excel可直接替換數據)

【Sklearn】基于多層感知器算法的數據分類預測(Excel可直接替換數據) 1.模型原理2.模型參數3.文件結構4.Excel數據5.下載地址6.完整代碼7.運行結果1.模型原理 多層感知器(Multilayer Perceptron,MLP)是一種前饋神經網絡,用于解決分類和回歸問題。它包含輸入層、若干個隱…

【數學建模】--灰色關聯分析

系統分析: 一般的抽象系統&#xff0c;如社會系統&#xff0c;經濟系統&#xff0c;農業系統&#xff0c;生態系統&#xff0c;教育系統等都包含有許多種因素&#xff0c;多種因素共同作用的結果決定了該系統的發展態勢。人們常常希望知道在眾多的因素中&#xff0c;哪些是主要…

leetcode 面試題 02.05 鏈表求和

?? 題目描述 &#x1f31f; leetcode鏈接&#xff1a;面試題 02.05 鏈表求和 ps&#xff1a; 首先定義一個頭尾指針 head 、tail&#xff0c;這里的 tail 是方便我們尾插&#xff0c;每次不需要遍歷找尾&#xff0c;由于這些數是反向存在的&#xff0c;所以我們直接加起來若…

深入理解設計模式-行為型之觀察者

概述 觀察者模式&#xff08;Observer Pattern&#xff09;是一種行為型設計模式&#xff0c;它定義了一種一對多的依賴關系&#xff0c;讓多個觀察者對象同時監聽一個主題對象&#xff0c;當主題對象發生變化時&#xff0c;所有依賴于它的觀察者對象都會得到通知并更新。 在…

如何安裝Python?

如何安裝Python&#xff1f; 安裝Python非常簡單&#xff0c;讓我們一步步來進行。 1. 訪問官方網站 首先&#xff0c;您需要訪問Python官方網站&#xff08;https://www.python.org/&#xff09;。在首頁上&#xff0c;您會看到一個大大的「Downloads」按鈕&#xff0c;點擊…

【Redis實踐篇】使用Redisson 優雅實現項目實踐過程中的5種場景

文章目錄 1.前言2.使用方式1. 添加Redisson依賴&#xff1a;2. 配置Redis連接信息3. 使用場景3.1. 分布式鎖3.2. 限流器&#xff08;Rate Limiter&#xff09;3.3. 可過期的對象&#xff08;Expirable Object&#xff09;3.4. 信號量&#xff08;Semaphore&#xff09;3.5. 分布…

ChatGPT在智能文檔搜索和信息抽取中的應用如何?

智能文檔搜索和信息抽取是信息檢索和知識管理領域中的關鍵問題&#xff0c;而ChatGPT作為一種強大的自然語言處理模型&#xff0c;正在這些領域發揮越來越重要的作用。在大數據時代&#xff0c;文檔數量龐大&#xff0c;信息量巨大&#xff0c;有效地搜索和抽取信息變得至關重要…

spfa判斷負環

思路&#xff1a; &#xff08;1&#xff09;負環&#xff1a;區別于正環&#xff0c;在求最短路過程中&#xff0c;正環會繞路&#xff0c;故不會被討論&#xff0c;而負環會不斷讓路總權更短&#xff0c;會讓算法不斷循環&#xff1b; &#xff08;2&#xff09;于是考慮統…

JVM---垃圾回收算法介紹

目錄 分代收集理論 三種垃圾回收算法 標記-清除算法&#xff08;最基礎的、基本不用&#xff09; 標記-復制算法 標記-整理算法 正式因為jvm有了垃圾回收機制&#xff0c;作為java開發者不會去特備關注內存&#xff0c;不像C和C。 優點&#xff1a;開發門檻低、安全 缺點…

windows Socket簡單編程實例

服務端 #include <winsock2.h> #include <string.h> #include <stdio.h> #include <stdlib.h>#pragma comment(lib, "Ws2_32.lib")void error_handing(const char* message) {fputs(message, stderr);fputc(\n, stderr);exit(1); } int mai…

任我行CRM系統存在 SQL注入漏洞[2023-HW]

任我行CRM系統存在 SQL注入漏洞 一、 產品簡介二、 漏洞概述三、 復現環境四、 漏洞復現小龍POC又是一通哈拉少 五、 修復建議 免責聲明&#xff1a;請勿利用文章內的相關技術從事非法測試&#xff0c;由于傳播、利用此文所提供的信息或者工具而造成的任何直接或者間接的后果及…

學習ts(二)數據類型(接口和對象類型、數組類型)

interface 重名會重合到一起 如果兩個interface名稱相同&#xff0c;會把兩個合到一起 重復定義同一個需要類型相同 不能多或者減少屬性 設置任意key 當定義接口返回數據時&#xff0c;我們不確定接口會返回多少&#xff0c;知道所需要的固定屬性&#xff0c;其余屬性可以…

學習筆記十四:K8S最小調度單元POD概述

K8S最小調度單元POD概述 k8s核心資源Pod介紹Pod是什么Pod如何管理多個容器Pod網絡Pod存儲代碼自動發版更新收集業務日志 Pod工作方式自主式Pod控制器管理的Pod(防誤刪除) 如何基于Pod運行應用 k8s核心資源Pod介紹 K8s官方文檔&#xff1a;https://kubernetes.io/ K8s中文官方文…

【博客692】grafana如何解決step動態變化時可能出現range duration小于step

grafana如何解決step動態變化時可能出現range duration小于step 1、grafana中的step和resolution grafana中的 “step” grafana本身是沒有提供step參數的&#xff0c;因為儀表盤根據查詢數據區間以及儀表盤線條寬度等&#xff0c;對于不同查詢&#xff0c;相同的step并不能…

校園外賣小程序怎么做

校園外賣小程序是為滿足校園內學生和教職員工的外賣需求而開發的一種應用程序。它涵蓋了從用戶端、商家端、騎手端、電腦管理員到小票打印、多商戶入駐等多個方面的功能&#xff0c;以下將逐一介紹。 1. 用戶端功能&#xff1a;校園外賣小程序為用戶提供了便捷的訂餐和外賣服務…

Zmq適配Win7 SP0 / Win XP/ Win 2k

1.目的 由于發布版本的libzmq使用了較多新的系統特性&#xff0c;導致在低版本windows平臺上無法使用。 因此&#xff0c;需要對zmq源碼進行修改以適配低版本的系統&#xff0c;如Win7 SP0&#xff0c;Win XP&#xff0c;Win2003等等。 2.Win7 SP0 #if defined ZMQ_HAVE_WIN…