我需要重新排列String并获取一个新的String。以下是详细信息
Current String = 2014-10-15
New String = 20141015
我发现我们可以使用split或sub字符串。我们考虑绩效时最好的方法是什么
答案 0 :(得分:1)
为什么要子串或拆分?通过查看您当前的String
,2014-10-15
只需将所有-
替换为""
。
您可以在Java
中使用String#replaceAll()。我不知道你在这里谈论的是什么,因为在这种情况下很难想到性能问题。
"2014-10-15".replaceAll("-","")
答案 1 :(得分:1)
尝试以下
String Current= "2014-10-15";
Current=Current.replaceAll("-","");
System.out.println(Current);
输出
20141015
Note :
问题是用空字符串替换-
。
更多关于此类string
方法,请访问this链接。
答案 2 :(得分:1)
String Current= "2014-10-15";
System.out.println(Current.replace("-", ""));
如果您使用任何正则表达式,则可以使用String.replaceAll()
答案 3 :(得分:1)
您可以使用Matcher.replaceAll方法。
加入String doc String.split()创建并编译一个新的Pattern对象。 String.replace()方法也是如此。如果在紧密循环中调用split()或replace()函数,则每次编译模式都会导致程序出现性能问题。
以下是示例代码
Pattern replace = Pattern.compile("-");
Matcher matcher = replace.matcher("2014-10-15");
System.out.println(matcher.replaceAll(" "));//out put is:20141015
您可以多次使用此处创建的Pattern对象,这样可以节省coringred到Strring.replaceAll()方法的时间。
答案 4 :(得分:1)
我认为此代码比replaceAll()
快得多。
另外,如果我没弄错的话,replaceAll()
会默默使用Matcher.replaceAll()
,因此它们之间没有任何重大差异。
String text = "123-66-4564-45";
StringBuilder buffer = new StringBuilder();
int length = text.length();
char[] temp = new char[length];
text.getChars(0, text.length(), temp, 0);
for (char c : temp) {
if ('-' != c) {
buffer.append(c);
}
}
String newText = buffer.toString();