4

我有一个像这样的字符串:

string = abcdefghabcd

现在假设我想替换第一次出现的a. 我试过这样的事情:

string[string.indexOf('a')] = '0'

但这似乎不起作用。我还有其他方法可以做到这一点吗?

提前致谢。

4

3 回答 3

7

在 Java 中,您可以使用String.replaceFirst()

String s = "abcdefghabcd";
s = s.replaceFirst("a", "0");
System.out.println(s);

输出将是:

0bcdefghabcd

警告:该replaceFirst()方法需要一个正则表达式:所以如果你想替换一个特殊字符,[你需要通过\在它前面放一个来转义。\作为一个特殊字符本身,您需要将其加倍如下:

s = s.replaceFirst("\\[", "0");

是有关 Java 正则表达式的文档。此外,这里是 Oracle 的关于在字符串中操作字符的 Java 教程。

于 2012-08-21T07:33:24.887 回答
2

您应该知道 Java 中的字符串是不可变的。它们不能改变。您用来“更改”字符串的任何方法都必须返回一个新字符串。如果要直接修改字符串,则需要使用可变字符串类型,例如 StringBuilder。

String API 文档中有许多方法可以帮助您获得字符串的修改版本,包括 s.replace()、s.replaceAll()、s.replaceFirst() ......或者您可以使用以下组合子字符串和“+”创建一个新字符串。

如果您真的想将字符串视为初始示例中的数组,则可以使用 String.getChars 获取字符数组,对其进行操作,然后使用 String 构造函数 String(char[]) 转换回字符串对象。

于 2012-08-21T07:46:57.023 回答
1

在这个程序中,您将需要使用 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"));
}
 }

你可以参考这里了解详情

于 2012-08-21T07:41:16.453 回答