Java相当于Php substr()

时间:2015-03-07 14:56:29

标签: java php function substring substr

我是一名Java开发人员,但我需要将代码从PHP转换为Java。 我需要一个函数,它在Java函数中提供与PHP函数substr相同的结果(因为Java不采用负值,而php需要)。

例如:

   $string = "I am not lonely man";
   $sub = $substr($string,1,-3);

编辑:正确的答案: -

public  String substr(String string,int from,int to){
    if(from < 0 && to < 0){
        if(Math.abs(from) > Math.abs(to)){
            String s = string.substring(string.length()-Math.abs(from));
            return s.substring(s.length()-Math.abs(to));
        }else{
            return "";
        }
   }else if(from >= 0 && to < 0){
        String s = string.substring(from);
       if(Math.abs(to) >= s.length()){
           return "";
       }else{
           return s.substring(0,s.length()-Math.abs(to));
       }


    }else if(from < 0 && to >= 0){
        String s = string.substring(string.length()-Math.abs(from));
        if(to >= s.length()){
        return s;   
        }
        return s.substring(0,to);
    }else{
        String s = string.substring(Math.abs(from));
        if(to >= s.length()){
            return s;
        }else{
            return s.substring(0, Math.abs(to));
        }

    }

}

输出:我不孤独

3 个答案:

答案 0 :(得分:0)

你可以写:

String string = "I am not lonely man";

String sub = string.substring(1, string.length() - 3);

答案 1 :(得分:0)

我认为你自己给出了答案:Java并不知道负面索引......所以你必须自己计算它们。因此,您可以提供自己的子字符串实用程序方法,允许负索引;你只需要根据传入字符串的长度来做数学运算。

答案 2 :(得分:0)

自己计算这个相对容易,但是如果你想要这种方法的方便,请考虑使用Apache StringUtils