从字符串中取出(n)个字符

时间:2012-01-19 09:59:06

标签: java

我在java中有一个字符串,长度不确定,我需要取前3个和后3个字符并将它们放入新字符串中。有一种简单的方法可以做到这一点吗?

7 个答案:

答案 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)

请参阅documentation

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”。要获得最后三个字符,您必须首先获得字符串的长度。