1. java替換特殊字元的方法是什麼 做好Java必須會的內容就在這里了
Java替換特殊字元的方法是什麼?在本實例中為保證學生輸入的 Java 文件名合格,將利用 StringBuffer 類實現對 Java 文件名中的特殊符號進行替換,包括將中文狀態下的“。”和全形狀態下的“.”替換為英文狀態下的“.”。
在本例實現過程中主要使用了 StringBuffer 類的字元查找和替換方法,實現用Java替換特殊字元代碼如下:
import java.util.Scanner;
public class test2 {
public static void main(String[] args) {
System.out.println("請輸入你要提交的Java文件名稱:");
Scanner input = new Scanner(System.in);
String fileName = input.next(); // 獲取用戶輸入的 java 文件名稱
// 定義StringBuffer對象,字元串內容為用戶輸入的java文件名稱
StringBuffer file = new StringBuffer(fileName);
// 獲取英文狀態下的"."是否存在
int index = file.lastIndexOf(".");
// 判斷中文狀態下的"。"和"."是否存在
int errIndex1 = file.lastIndexOf("。");
int errIndex2 = file.lastIndexOf(".");
if (index != -1 && file.substring(index + 1, file.length()).equals("java")) {
System.out.println("作業提交成功!");
} else if (errIndex1 != -1 && file.substring(errIndex1 + 1, file.length()).equals("java")) {
// 將中文狀態下的"。"改為英文狀態下的"."
file.setCharAt(errIndex1, '.');
System.out.println("你的書寫有誤,已改正為:" + file + "rn提交成功!");
} else if (errIndex2 != -1 && file.substring(errIndex2 + 1, file.length()).equals("java")) {
// 將全形狀態下的"."改為英文狀態下的"."
file.setCharAt(errIndex2, '.');
System.out.println("你的書寫有誤,已改正為:" + file + "rn提交成功!");
} else {
System.out.println("你提供的java文件名稱有誤,請核實!");
}
}
}[page]
Java替換特殊字元的方法是什麼?運行該用Java替換特殊字元程序,當用戶錄入的 Java 文件名稱中的為中文狀態的“。”和“.”時,修改為英文狀態下的“.”,然後再進行提交,如下所示:
請輸入你要提交的Java文件名稱:
myexapmle。java
你的書寫有誤,已改正為:myexample.java
在該程序中,實現替換特殊字元步驟如下所示:
定義了一個 String 類型的變數,並賦值為用戶輸入的 Java 文件名稱。
使用 StringBuffer 的 StringBuffer(String str) 構造函數將該變數的值作為 StringBuffer 對象的值。
獲取用戶輸入字元串中(英文和中文)的位置。
使用多重 if 選擇語句判斷用戶輸入的字元串中是否包含英文狀態下的,並且後面的字元串是否為“java”,如果條件成立,則表示用戶輸入的信息無誤,提交成功。
在 else if 中判斷用戶輸入的字元串中是否包含中文狀態下的“。”和“.”,並且“。”和後面的字元串為“java”,如果判斷通過,則調用 StringBuffer 類中的 setCharAt() 方法修改“。”為“.”,再提交。
本篇《Java替換特殊字元的方法是什麼?這些內容才是做好Java必須會的》到這里就已經結束了,並不是所有的數據類型都可以指定直接數量,通常只有三種類型:原語、字元串和NULL,環球網校的小編祝您PHP學習之路順利,如果你還想知道更多Java知識,那麼可以點擊本站的其他文章進行學習。
2. JAVA中REPLACE和REPLACEALL的區別是什麼以及一些特殊字元替換怎麼使用
replace的參數是char和CharSequence,即可以支持字元的替換,也支持字元串的替換(CharSequence即字元串序列的意思,說白了也就是字元串);
replaceAll的參數是regex,即基於規則表達式的替換,比如:可以通過replaceAll("\\d", "*")把一個字元串所有的數字字元都換成星號;
相同點:都是全部替換,即把源字元串中的某一字元或字元串全部換成指定的字元或字元串;
不同點:replaceAll支持正則表達式,因此會對參數進行解析(兩個參數均是),如replaceAll("\\d", "*"),而replace則不會,replace("\\d","*")就是替換"\\d"的字元串,而不會解析為正則。
另外還有一個不同點:「\」在Java中是一個轉義字元,所以需要用兩個代表一個。
例如System.out.println( "\\" ) ;只列印出一個"\"。但是「\」也是正則表達式中的轉義字元,需要用兩個代表一個。所以:\\\\被java轉換成\\,\\又被正則表達式轉換成\,因此用replaceAll替換「\」為"\\",就要用replaceAll("\\\\","\\\\\\\\"),而replace則replace("\\","\\\\")。
如果只想替換第一次出現的,可以使用replaceFirst(),這個方法也是基於規則表達式的替換,但與replaceAll()不同的是,只替換第一次出現的字元串。
3. JAVA 替換特殊字元 的 正則表達式
JAVA替換特殊字元的正則表達式
代碼如下:
importjava.util.regex.*;
//表達式對象
Patternp=Pattern.compile("[\'\*\~]");
//創建Matcher對象
Matcherm=p.matcher("Stringstr="t'e*s~t";");
//替換
Stringnewstring=m.replaceAll("[$0]");
效果如下:
正則參考http://zh.wikipedia.org/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F