Java利用StringBuffer替換特殊字符的方法實(shí)現(xiàn)
在本實(shí)例中為保證學(xué)生輸入的 Java 文件名合格,將利用 StringBuffer 類(lèi)實(shí)現(xiàn)對(duì) Java 文件名中的特殊符號(hào)進(jìn)行替換,包括將中文狀態(tài)下的“?!焙腿菭顟B(tài)下的“.”替換為英文狀態(tài)下的“.”。
在本例實(shí)現(xiàn)過(guò)程中主要使用了 StringBuffer 類(lèi)的字符查找和替換方法,實(shí)現(xiàn)代碼如下:
import java.util.Scanner;
public class test2 {
public static void main(String[] args) {
System.out.println("請(qǐng)輸入你要提交的Java文件名稱(chēng):");
Scanner input = new Scanner(System.in);
String fileName = input.next(); // 獲取用戶(hù)輸入的 java 文件名稱(chēng)
// 定義StringBuffer對(duì)象,字符串內(nèi)容為用戶(hù)輸入的java文件名稱(chēng)
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("你的書(shū)寫(xiě)有誤,已改正為:" + 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("你的書(shū)寫(xiě)有誤,已改正為:" + file + "\r\n提交成功!");
} else {
System.out.println("你提供的java文件名稱(chēng)有誤,請(qǐng)核實(shí)!");
}
}
}
運(yùn)行該程序,當(dāng)用戶(hù)錄入的 Java 文件名稱(chēng)中的為中文狀態(tài)的“。”和“.”時(shí),修改為英文狀態(tài)下的“.”,然后再進(jìn)行提交,如下所示:
請(qǐng)輸入你要提交的Java文件名稱(chēng):
myexapmle。java
你的書(shū)寫(xiě)有誤,已改正為:myexample.java
在該程序中,實(shí)現(xiàn)替換特殊字符步驟如下所示:
- 定義了一個(gè) String 類(lèi)型的變量,并賦值為用戶(hù)輸入的 Java 文件名稱(chēng)。
- 使用 StringBuffer 的 StringBuffer(String str) 構(gòu)造函數(shù)將該變量的值作為 StringBuffer 對(duì)象的值。
- 獲取用戶(hù)輸入字符串中(英文和中文)的位置。
- 使用多重 if 選擇語(yǔ)句判斷用戶(hù)輸入的字符串中是否包含英文狀態(tài)下的,并且后面的字符串是否為“java”,如果條件成立,則表示用戶(hù)輸入的信息無(wú)誤,提交成功。
- 在 else if 中判斷用戶(hù)輸入的字符串中是否包含中文狀態(tài)下的“。”和“.”,并且“。”和后面的字符串為“java”,如果判斷通過(guò),則調(diào)用 StringBuffer 類(lèi)中的 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)文章
Apache DolphinScheduler實(shí)現(xiàn)自動(dòng)化打包單機(jī)/集群部署詳解
這篇文章主要為大家介紹了Apache DolphinScheduler實(shí)現(xiàn)自動(dòng)化打包單機(jī)/集群部署詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
Spring基于AspectJ的AOP開(kāi)發(fā)案例解析
這篇文章主要介紹了Spring的基于AspectJ的AOP開(kāi)發(fā),AspectJ是一個(gè)基于Java語(yǔ)言的AOP框架,使用AspectJ需要導(dǎo)入Spring?AOP和AspectJ相關(guān)jar包,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
詳解eclipse創(chuàng)建maven項(xiàng)目實(shí)現(xiàn)動(dòng)態(tài)web工程完整示例
這篇文章主要介紹了詳解eclipse創(chuàng)建maven項(xiàng)目實(shí)現(xiàn)動(dòng)態(tài)web工程完整示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
Shell重啟SpringBoot項(xiàng)目腳本的示例代碼(含服務(wù)守護(hù))
本文介紹了如何使用?Bash?腳本來(lái)管理和守護(hù)運(yùn)行服務(wù),將展示一個(gè)示例腳本,該腳本可以停止、啟動(dòng)和守護(hù)運(yùn)行一個(gè)服務(wù),并提供了相應(yīng)的解釋和用法說(shuō)明,文章通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11
Java關(guān)鍵字synchronized基本使用詳解
這篇文章主要給大家介紹了關(guān)于Java關(guān)鍵字synchronized基本使用的相關(guān)資料,synchronized可以用來(lái)同步靜態(tài)和非靜態(tài)方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
類(lèi)似Object監(jiān)視器方法的Condition接口(詳解)
下面小編就為大家?guī)?lái)一篇類(lèi)似Object監(jiān)視器方法的Condition接口(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05
Java 使用openoffice進(jìn)行word轉(zhuǎn)換為pdf的方法步驟
這篇文章主要介紹了Java 使用openoffice進(jìn)行word轉(zhuǎn)換為pdf的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Spring Cloud負(fù)載均衡及遠(yuǎn)程調(diào)用實(shí)現(xiàn)詳解
這篇文章主要介紹了Spring Cloud負(fù)載均衡及遠(yuǎn)程調(diào)用實(shí)現(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08

