Java字符串替换

时间:2020-02-23 14:34:32  来源:igfitidea点击:

Java字符串替换方法用于用其他一些字符串替换部分字符串。
这些字符串替换方法有时非常有用。
例如,将文件中所有出现的"颜色"替换为"颜色"。

Java字符串替换

Java String类具有四种替换子字符串的方法。
这些方法中的两个接受正则表达式来匹配和替换字符串的一部分。

  • public String replace(CharSequence target,CharSequence replace):此方法用替换字符串替换此字符串的每个子字符串并返回它。
    请注意,替换是从字符串的开始到字符串的结尾进行的。
    可以通过下面的代码片段轻松确认此行为。

  • public String replace(char oldChar,char newChar):此方法用于将所有出现的oldChar字符替换为newChar字符。

  • public String replaceAll(字符串正则表达式,字符串替换):这是一个非常有用的方法,因为我们可以传递正则表达式来匹配并替换为替换字符串。

  • public String replaceFirst(字符串正则表达式,字符串替换):此字符串替换方法类似于replaceAll,不同之处在于,它仅用替换字符串替换匹配的正则表达式的第一个匹配项。

Java String替换字符示例

字符替换的流行用例之一是更改字符串中的定界符。
例如,下面的代码片段显示了如何在给定的字符串中将管道定界符更改为逗号。

String str1 = "aaaaa";
str1 = str1.replace("aa","x");
System.out.println(str1); //xxa

Java String replace()示例

让我们看一下java字符串替换方法示例,该示例将目标字符串替换为另一个字符串。
我将从Java扫描程序类获取用户输入的源,目标和替换字符串。

package com.theitroad.string;

public class JavaStringReplaceChar {

	public static void main(String[] args) {
		
		String str = "Android|java|python|swift";
		str = str.replace('|', ',');
		System.out.println(str);
	}
}

Java String replaceAll示例

如果您注意到上述程序输出,则目标字符串应与替换完全匹配。
有时是不可能的,因为输入的字符串可能因大小写而有所不同。
在这种情况下,我们可以使用replaceAll方法并传递不区分大小写的正则表达式。
让我们看一个简单的程序,该程序将以不区分大小写的方式匹配并替换字符串。

package com.theitroad.string;

import java.util.Scanner;

public class JavaStringReplace {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		System.out.println("Enter Source Term:");
		String source = sc.nextLine();

		System.out.println("Enter Search Term:");
		String search = sc.nextLine();

		System.out.println("Enter Replace Term:");
		String replace = sc.nextLine();

		String result = source.replace(search, replace);

		System.out.println("Result = " + result);

		sc.close();
	}

}

您是否注意到搜索词的前缀((i))?这是通过不区分大小写的方式传递正则表达式来匹配字符串。
下图显示了由于我们使用replaceAll方法而将" Android"和" android"术语都替换为" Java"的输出。

Java String replace第一个示例

Java字符串replaceFirst用于用替换字符串仅替换第一个匹配的正则表达式字符串。
让我们看一下String replaceFirst方法的简单示例。

package com.theitroad.string;

import java.util.Scanner;

public class JavaStringReplaceAll {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		System.out.println("Enter Source Term:");
		String source = sc.nextLine();

		System.out.println("Enter Search Term:");
		String search = sc.nextLine();
		search = "(?i)"+search;
		
		System.out.println("Enter Replace Term:");
		String replace = sc.nextLine();
		
		
		String result = source.replaceAll(search, replace);
		
		System.out.println("Result = "+result);
		
		sc.close();
	}

}