如何在字符串之间添加连字符

时间:2010-04-14 11:44:37

标签: java

我有以下刺痛xxxxx,我想添加一个像x-xxxx这样的连字符,我该怎么办?使用Java?

6 个答案:

答案 0 :(得分:13)

您可以使用String#substring()

String newstring = string.substring(0, 1) + "-" + string.substring(1);

您只需要事先检查string length以避免IndexOutOfBoundsException,但这只不过是显而易见的。

答案 1 :(得分:4)

String是Java中的不可变类型,这意味着在构造String后,您无法更改它所代表的字符序列。

您可以使用StringBuilder类的实例创建String的新实例,该实例代表原始String的某些转换。例如,如您所知,添加连字符,您可以执行此操作:

String str = "xxxxx";
StringBuilder builder = new StringBuilder(str);
builder.insert(1, '-');
String hyphenated = builder.toString(); // "x-xxxx"

StringBuilder最初包含str内容的副本;也就是"xxxxx"

insert的调用会将构建器的内容更改为"x-xxxx"

调用toString会返回一个新的String,其中包含副本字符串构建器的内容。

由于String类型是不可变的,因此对StringBuilder内容的操纵不会改变strhyphenated的内容。

您可以通过

更改String实例str 引用的内容
str = builder.toString();

而不是

String hyphenated = builder.toString();

但永远不会有str引用的字符串的内容发生变化,因为这是不可能的。相反,str用于引用包含"xxxxx"的实例,现在引用包含"x-xxxx"的实例。

答案 2 :(得分:4)

假设

String in = "ABCDEF";
String out;

然后, 任何

out = in.replaceFirst(".", "$0-");

out = String.format("%1$s-%2$s", in.substring(0,1), in.substring(1));

out = in.substring(0,1) + "-" + in.substring(1);

out = new StringBuilder(in).insert(1, '-').toString();

out = "A-BCDEF"

答案 3 :(得分:1)

String xxx = "xxxxx";
String hyphened = xxx.substring(0,1) + "-" + xxx.substring(1);

答案 4 :(得分:1)

你可以这样做:

String orgStr = "xxxxx";
String newStr = orgStr.substring(0,1) + "-" + orgStr.substring(1)

答案 5 :(得分:0)

这是另一种方式:

MaskFormatter fmt = new MaskFormatter("*-****");
fmt.setValueContainsLiteralCharacters(false);
System.out.println(fmt.valueToString("12345"));