我有以下刺痛xxxxx,我想添加一个像x-xxxx这样的连字符,我该怎么办?使用Java?
答案 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
内容的操纵不会改变str
或hyphenated
的内容。
您可以通过
更改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"));