Java利用StringBuffer替換特殊字符的方法實(shí)現(xiàn)
在本實(shí)例中為保證學(xué)生輸入的 Java 文件名合格,將利用 StringBuffer 類實(shí)現(xiàn)對(duì) Java 文件名中的特殊符號(hào)進(jìn)行替換,包括將中文狀態(tài)下的“?!焙腿菭顟B(tài)下的“.”替換為英文狀態(tài)下的“.”。
在本例實(shí)現(xiàn)過程中主要使用了 StringBuffer 類的字符查找和替換方法,實(shí)現(xiàn)代碼如下:
import java.util.Scanner; public class test2 { public static void main(String[] args) { System.out.println("請(qǐng)輸入你要提交的Java文件名稱:"); Scanner input = new Scanner(System.in); String fileName = input.next(); // 獲取用戶輸入的 java 文件名稱 // 定義StringBuffer對(duì)象,字符串內(nèi)容為用戶輸入的java文件名稱 StringBuffer file = new StringBuffer(fileName); // 獲取英文狀態(tài)下的"."是否存在 int index = file.lastIndexOf("."); // 判斷中文狀態(tài)下的"。"和"."是否存在 int errIndex1 = file.lastIndexOf("。"); int errIndex2 = file.lastIndexOf("."); if (index != -1 && file.substring(index + 1, file.length()).equals("java")) { System.out.println("作業(yè)提交成功!"); } else if (errIndex1 != -1 && file.substring(errIndex1 + 1, file.length()).equals("java")) { // 將中文狀態(tài)下的"。"改為英文狀態(tài)下的"." file.setCharAt(errIndex1, '.'); System.out.println("你的書寫有誤,已改正為:" + file + "\r\n提交成功!"); } else if (errIndex2 != -1 && file.substring(errIndex2 + 1, file.length()).equals("java")) { // 將全角狀態(tài)下的"."改為英文狀態(tài)下的"." file.setCharAt(errIndex2, '.'); System.out.println("你的書寫有誤,已改正為:" + file + "\r\n提交成功!"); } else { System.out.println("你提供的java文件名稱有誤,請(qǐng)核實(shí)!"); } } }
運(yùn)行該程序,當(dāng)用戶錄入的 Java 文件名稱中的為中文狀態(tài)的“?!焙汀?”時(shí),修改為英文狀態(tài)下的“.”,然后再進(jìn)行提交,如下所示:
請(qǐng)輸入你要提交的Java文件名稱:
myexapmle。java
你的書寫有誤,已改正為:myexample.java
在該程序中,實(shí)現(xiàn)替換特殊字符步驟如下所示:
- 定義了一個(gè) String 類型的變量,并賦值為用戶輸入的 Java 文件名稱。
- 使用 StringBuffer 的 StringBuffer(String str) 構(gòu)造函數(shù)將該變量的值作為 StringBuffer 對(duì)象的值。
- 獲取用戶輸入字符串中(英文和中文)的位置。
- 使用多重 if 選擇語句判斷用戶輸入的字符串中是否包含英文狀態(tài)下的,并且后面的字符串是否為“java”,如果條件成立,則表示用戶輸入的信息無誤,提交成功。
- 在 else if 中判斷用戶輸入的字符串中是否包含中文狀態(tài)下的“?!焙汀?”,并且“。”和后面的字符串為“java”,如果判斷通過,則調(diào)用 StringBuffer 類中的 setCharAt() 方法修改“?!睘椤?”,再提交。
補(bǔ)充:用StringBuffer替換特定位置字符
import java.util.*; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNextLine()){ StringBuffer s=new StringBuffer(); s.append(sc.nextLine()); if(s.length()>=1&&s.length()<=10) { int j=0; for(int i=0;i<s.length()-1;i++){ if(s.charAt(i)==s.charAt(i+1)){ j++; s.setCharAt(i+1,'Z');//替換特定字符 } } System.out.println(j); } else continue; } } }
到此這篇關(guān)于Java利用StringBuffer替換特殊字符的方法實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java StringBuffer替換特殊字符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解springboot設(shè)置默認(rèn)參數(shù)Springboot.setDefaultProperties(map)不生效解決
這篇文章主要介紹了詳解springboot設(shè)置默認(rèn)參數(shù)Springboot.setDefaultProperties(map)不生效解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07SpringMVC核心DispatcherServlet處理流程分步詳解
這篇文章主要介紹了SpringMVC核心之中央調(diào)度器DispatcherServlet的相關(guān)知識(shí),包括SpringMVC請(qǐng)求處理過程及SrpingMVC容器和spring IOC容器關(guān)系,需要的朋友可以參考下2023-04-04java字節(jié)碼框架ASM操作字節(jié)碼的方法淺析
這篇文章主要給大家介紹了關(guān)于java字節(jié)碼框架ASM如何操作字節(jié)碼的相關(guān)資料,文中通過示例代碼介紹的很詳細(xì),有需要的朋友可以參考借鑒,下面來一起看看吧。2017-01-01Springboot連接數(shù)據(jù)庫及查詢數(shù)據(jù)完整流程
今天給大家?guī)淼氖顷P(guān)于Springboot的相關(guān)知識(shí),文章圍繞著Springboot連接數(shù)據(jù)庫及查詢數(shù)據(jù)完整流程展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06Java實(shí)現(xiàn)監(jiān)控多個(gè)線程狀態(tài)的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)硪黄狫ava實(shí)現(xiàn)監(jiān)控多個(gè)線程狀態(tài)的簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03java復(fù)制文件的4種方式及拷貝文件到另一個(gè)目錄下的實(shí)例代碼
這篇文章主要介紹了java復(fù)制文件的4種方式,通過實(shí)例帶給大家介紹了java 拷貝文件到另一個(gè)目錄下的方法,需要的朋友可以參考下2018-06-06簡(jiǎn)單操作實(shí)現(xiàn)Java jsp servlet文件上傳過程解析
這篇文章主要介紹了簡(jiǎn)單操作實(shí)現(xiàn)Java jsp servlet文件上傳過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10Intellij IDEA 2018配置Java運(yùn)行環(huán)境的方法步驟
這篇文章主要介紹了Intellij IDEA 2018配置Java運(yùn)行環(huán)境的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09