我是一名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));
}
}
}
输出:我不孤独
答案 0 :(得分:0)
你可以写:
String string = "I am not lonely man";
String sub = string.substring(1, string.length() - 3);
答案 1 :(得分:0)
我认为你自己给出了答案:Java并不知道负面索引......所以你必须自己计算它们。因此,您可以提供自己的子字符串实用程序方法,允许负索引;你只需要根据传入字符串的长度来做数学运算。
答案 2 :(得分:0)
自己计算这个相对容易,但是如果你想要这种方法的方便,请考虑使用Apache StringUtils。