3 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊
我其實(shí)最先想到的是用集合來做,非常簡(jiǎn)單,易于理解。(可能度娘沒有排版,自己copy下)
你把步驟細(xì)分下,就是在arr數(shù)組中移除最后個(gè),在添加到arr數(shù)組的第一個(gè)位置。
import java.util.Arrays;
import java.util.LinkedList;
public class Test
{
public static void main(String[] args){
String[] arr={"a","b","c","d","e","f","g","h"};
System.out.println(Arrays.toString(transpose(arr,3)));
}
private static String[] transpose(String[] arr,int n){
LinkedList<String> originalList=new LinkedList<String>();
for(String s:arr)
originalList.add(s);
if(n<0)
throw new IllegalArgumentException("argument n: "+n +"is negative!");
if(n==0)
return arr;
for(int i=0;i<n;i++){
String e=originalList.pollLast();
originalList.offerFirst(e);
}
return originalList.toArray(new String[0]);
}
}

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
public class change {
public static String[] change(String[] arry,int len){
String tar[] = new String[arry.length] ;
for(int i = arry.length-len,y=0;i<arry.length;i++){
tar[y++]=arry[i];
}
for(int i = len,y=0;i<arry.length;i++){
tar[i]=arry[y++];
}
return tar;
}
public static void main(String arg[]){
String[] ss = new String[]{"a","b","c","d"};
for(String s : ss){
System.out.print(s);
}
System.out.print("\n");
for(String s :change(ss,0) ){
System.out.print(s);
}
}
}

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊
建立一個(gè)中間數(shù)組保存下移除的元素,原數(shù)組元素右移以后再添上去不就行了。
按照你的題意做的:
public static void main(String[] args) {
String[] x1 = { "a", "b", "c", "d", "e", "f" };
int n = 2;
String[] x2 = new String[n];
int a = n - 1;
for (int i = x1.length - 1; i > x1.length - 1 - n; i--) {
x2[a] = x1[i];
a--;
}
int b = x1.length - 1;
for (int i = x1.length - 1 - n; i >= 0; i--) {
x1[b] = x1[i];
b--;
}
for (int i = 0; i < n; i++) {
x1[i] = x2[i];
}
for (String x : x1) {
System.out.print(x + " ");
}
}
添加回答
舉報(bào)