我在java中有一个字符串,长度不确定,我需要取前3个和后3个字符并将它们放入新字符串中。有一种简单的方法可以做到这一点吗?
答案 0 :(得分:6)
有趣的是,所有解决方案都有错误(更新:除了带有正则表达式的解决方案),并且当输入字符串的长度小于3时可能会导致StringIndexOutOfBoundsException
(问题明确表示长度不确定)。假设str不为null,那么正确的方法是:
String first = str.substring(0, Math.min(str.length(), 3));
String second = str.substring(Math.max(0, str.length() - 3), str.length());
答案 1 :(得分:5)
您可以使用子字符串方法:
String text = "Hello world!";
String newText = text.substring(0, 3) + text.substring(text.length-3);
这将采取“Hello world!”并创建一个名为“Helld!”的新字符串。
如果您正在寻找可以使用的方法:
String trimThreeCharacters(text){
return text.substring(0,3) + text.substring(text.length-3);
}
答案 2 :(得分:2)
str.substring(0, 3) + str.substring(str.length - 3)
编辑:
此代码不安全。我留给你检查字符串是否太短。 您还可以使用正则表达式:
Pattern p = Pattern.compile("^(.{3}).*(.{3})$");
Matcher m = p.matcher(str);
if (m.find()) {
String s1 = m.group(1);
String s2 = m.group(2);
}
答案 3 :(得分:1)
new_string = old_string.substring(0,3) +
old_string.substring(old_string.lenght() - 3)
答案 4 :(得分:1)
public class Substring {
public static void main(String[] args) {
String input = "very long string, with random content";
System.out.println(input.substring(0, 3));
int length = input.length();
System.out.println(input.substring(length - 3));
}
}
<强>结果强>
ver
ent
答案 5 :(得分:1)
另一种方法
public class MyString
{
private String value;
public MyString(String p_value)
{
value = p_value;
}
public String getFirstThree()
{
return value.substring(0, 3);
}
public String getLastThree()
{
return value.substring(value.length() - 3);
}
public String getNewString()
{
return getFirstThree() + getLastThree();
}
public static void main(String[] args)
{
MyString example = new MyString("hello world");
String newString = example.getNewString();
System.out.println(newString);
}
}
答案 6 :(得分:0)
正如米兰已经说过的那样,子串就是去的地方。您可以看到一些使用here的例子。
String FullName = "Cande Nauer";
String FirstNameChars = "";
FirstNameChars = FullName.substring( 0, 3 );
在此示例中,FirstNameChars将为“Can”。要获得最后三个字符,您必须首先获得字符串的长度。