程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 淺談java中replace()和replaceAll()的差別

淺談java中replace()和replaceAll()的差別

編輯:關於JAVA

淺談java中replace()和replaceAll()的差別。本站提示廣大學習愛好者:(淺談java中replace()和replaceAll()的差別)文章只能為提供參考,不一定能成為您想要的結果。以下是淺談java中replace()和replaceAll()的差別正文


replace和replaceAll是JAVA中經常使用的調換字符的辦法,它們的差別是:

1)replace的參數是char和CharSequence,便可以支撐字符的調換,也支撐字符串的調換(CharSequence即字符串序列的意思,說白了也就是字符串);

2)replaceAll的參數是regex,即基於規矩表達式的調換,好比,可以經由過程replaceAll("\\d", "*")把一個字符串一切的數字字符都換成星號;

雷同點:都是全體調換,即把源字符串中的某一字符或字符串全體換成指定的字符或字符串,假如只想調換第一次湧現的,可使用replaceFirst(),這個辦法也是基於規矩表達式的調換,但與replaceAll()分歧的是,只調換第一次湧現的字符串;

別的,假如replaceAll()和replaceFirst()所用的參數據不是基於規矩表達式的,則與replace()調換字符串的後果是一樣的,即這二者也支撐字符串的操作;

還有一點留意::履行了調換操作後,源字符串的內容是沒有產生轉變的。

  舉例以下:  

  String src = new String("ab43a2c43d");

  System.out.println(src.replace("3","f"));=>ab4f2c4fd.

  System.out.println(src.replace('3','f'));=>ab4f2c4fd.

  System.out.println(src.replaceAll("\\d","f"));=>abffafcffd.

  System.out.println(src.replaceAll("a","f"));=>fb43fc23d.

  System.out.println(src.replaceFirst("\\d,"f"));=>abf32c43d

  System.out.println(src.replaceFirst("4","h"));=>abh32c43d.

若何將字符串中的"\"調換成"\\": 

  String msgIn;

  String msgOut;

  msgOut=msgIn.replaceAll("\\\\","\\\\\\\\");

緣由:

  '\'在java中是一個本義字符,所以須要用兩個代表一個。例如System.out.println( "\\" ) ;只打印出一個"\"。然則'\'也是正則表達式中的本義字符(replaceAll 的參數就是正則表達式),須要用兩個代表一個。所以:\\\\被java轉換成\\,\\又被正則表達式轉換成\。

異樣

  CODE: \\\\\\\\

  Java: \\\\

  Regex: \\

將字符串中的'/'調換成'\'的幾種方法:

  msgOut= msgIn.replaceAll("/", "\\\\");

  msgOut= msgIn.replace("/", "\\");

  msgOut= msgIn.replace('/', '\\');

經由過程實例辨別了java中replace()和replaceAll()的分歧點,願望本文對年夜家進修有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved