如果你的願望是讓用戶輸入的非反轉start
和end
indicies字符串,您可以通過重新映射索引值輕鬆實現此目的。
下面是1 StringBuilder
工作的例子,你問:
public static void main(String[] args) {
final StringBuilder sb = new StringBuilder("abcdefgh");
final int startIndex = 2;
final int endIndex = 5;
sb.reverse();
final String output = substring(sb.toString(), startIndex, endIndex);
System.out.println("Result: " + output);
}
//Retrieve the substring of a reversed string
private static String substring(String input, int start, int end) {
start = map(start, 0, input.length(), input.length(), 0);
end = map(end, 0, input.length(), input.length(), 0);
String substring = input.substring(end, start);
return substring;
}
//Map value from the min,max range, to the new minRange-maxRange range.
private static int map(float value, float min, float max, float minRange, float maxRange) {
return Math.round(minRange + (maxRange - minRange) * ((value - min)/(max - min)));
}
後者不起作用。我需要創建一個新的StringBuilder對象然後反向。 – TheCoder 2013-04-08 11:06:43
@ heyya99如果你的答案是我的答案,請接受這個作爲anser – PSR 2013-04-08 11:08:21
我認爲這太複雜了。我想我可以使用一個字符串來減少它的複雜性。 – TheCoder 2013-04-08 11:34:54