下文將通過(guò)一個(gè)具體的 Java 實(shí)例代碼來(lái)展示如何使用 StringBuffer 類來(lái)實(shí)現(xiàn)替換字符的內(nèi)容,內(nèi)容供大家參考,希望能夠幫助到大家學(xué)習(xí)。
在本實(shí)例中為保證學(xué)生輸入的 Java 文件名合格,將利用 StringBuffer 類實(shí)現(xiàn)對(duì) Java 文件名中的特殊符號(hào)進(jìn)行替換,包括將中文狀態(tài)下的“?!焙腿菭顟B(tài)下的“.”替換為英文狀態(tài)下的“.”。
在本例實(shí)現(xiàn)過(guò)程中主要使用了 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("你的書(shū)寫有誤,已改正為:" + file + "
提交成功!");
} else if (errIndex2 != -1 && file.substring(errIndex2 + 1, file.length()).equals("java")) {
// 將全角狀態(tài)下的"."改為英文狀態(tài)下的"."
file.setCharAt(errIndex2, '.');
System.out.println("你的書(shū)寫有誤,已改正為:" + file + "
提交成功!");
} 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
你的書(shū)寫有誤,已改正為:myexample.java
在該程序中,實(shí)現(xiàn)替換特殊字符步驟如下所示:
- 定義了一個(gè) String 類型的變量,并賦值為用戶輸入的 Java 文件名稱。
- 使用 StringBuffer 的 StringBuffer(String str) 構(gòu)造函數(shù)將該變量的值作為 StringBuffer 對(duì)象的值。
- 獲取用戶輸入字符串中(英文和中文)的位置。
- 使用多重 if 選擇語(yǔ)句判斷用戶輸入的字符串中是否包含英文狀態(tài)下的,并且后面的字符串是否為“java”,如果條件成立,則表示用戶輸入的信息無(wú)誤,提交成功。
- 在 else if 中判斷用戶輸入的字符串中是否包含中文狀態(tài)下的“。”和“.”,并且“?!焙秃竺娴淖址疄椤癹ava”,如果判斷通過(guò),則調(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 具體應(yīng)用內(nèi)容請(qǐng)搜索W3Cschool以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,也希望大家以后多多支持我們!