我有一个像这样的字符串:
string = abcdefghabcd
现在假设我想替换第一次出现的a
. 我试过这样的事情:
string[string.indexOf('a')] = '0'
但这似乎不起作用。我还有其他方法可以做到这一点吗?
提前致谢。
在 Java 中,您可以使用String.replaceFirst():
String s = "abcdefghabcd";
s = s.replaceFirst("a", "0");
System.out.println(s);
输出将是:
0bcdefghabcd
警告:该replaceFirst()
方法需要一个正则表达式:所以如果你想替换一个特殊字符,[
你需要通过\
在它前面放一个来转义。\
作为一个特殊字符本身,您需要将其加倍如下:
s = s.replaceFirst("\\[", "0");
您应该知道 Java 中的字符串是不可变的。它们不能改变。您用来“更改”字符串的任何方法都必须返回一个新字符串。如果要直接修改字符串,则需要使用可变字符串类型,例如 StringBuilder。
String API 文档中有许多方法可以帮助您获得字符串的修改版本,包括 s.replace()、s.replaceAll()、s.replaceFirst() ......或者您可以使用以下组合子字符串和“+”创建一个新字符串。
如果您真的想将字符串视为初始示例中的数组,则可以使用 String.getChars 获取字符数组,对其进行操作,然后使用 String 构造函数 String(char[]) 转换回字符串对象。
在这个程序中,您将需要使用 Java 中 String 类的 replaceFirst() 方法。
/*
Java String replace example.
This Java String Replace example describes how replace method of java String
class can be used to replace character or substring by new one.
*/
public class JavaStringReplaceExample{
public static void main(String args[])
{
String str="abcdefghabcd";
System.out.println(str.replaceFirst("a", "0"));
}
}
你可以参考这里了解详情