Java equivalent of Php substr()


Java equivalent of Php 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));
        }
    }
}

输出:不寂寞

自己计算这个相对容易,但是如果你想用方便的方法来处理这类事情,请考虑使用Apache StringUtils。

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

你可以

这样写:

String string = "I am not lonely man";
String sub = string.substring(1, string.length() - 3);