java数组指定位置插入数据问题,急急急!!!!

一字符数组array[],长度为100,前50个元素有效,其中出现一次或者多次字符"</>",请编写java程序对array字符数组进行处理,自动复制"</>",并紧跟其... 一字符数组array[],长度为100,前50个元素有效,其中出现一次或者多次字符"</>",请编写java程序对array字符数组进行处理,自动复制"</>",并紧跟其后插入"</>",如:"</>"变成"</></>"。

一个char[100] 类型的数组, 里面前50个数据类似这样{'<','/','>','2','g','<','/','>','f','a'},要求找到"</>" 在其后添加相同的"</>",在线等大神回复。
char[] array = new char[100];
array[0] = '<';
array[1] = '/';
array[2] = '>';
array[3] = '2';
array[4] = 'a';
array[5] = '<';
array[6] = '/';
array[7] = '>';
array[8] = '1';
array[9] = 'k';

for (int i = array.length - 1; i > 0; i--) {
if ('>' == array[i]) {
array[i + 4] = array[i + 1];
array[i + 5] = array[i + 2];
array[i + 6] = array[i + 3];
array[i + 1] = '<';
array[i + 2] = '/';
array[i + 3] = '>';
}
}

}
我这样做输出的结果是 :< / > < / > 2 a < / > 1 k
我想要的效果是:< / > < / > 2 a < / > < / >1 k
展开
 我来答
B2K1bonPplR
2016-08-05 · TA获得超过2049个赞
知道小有建树答主
回答量:1156
采纳率:72%
帮助的人:390万
展开全部
/**
   * @param a
   * @return 处理后的有效元素个数。
   */
  public static int process(char[] a) {
    int j = a.length - 1;
    for (int i = a.length / 2 - 1; i >= 0; i--) {
      a[j--] = a[i];
      if (a[i] == '<' && i <= a.length / 2 - 1 - 2 && a[i + 1] == '/'
          && a[i + 2] == '>') {
        a[j--] = '>';
        a[j--] = '/';
        a[j--] = '<';
      }
    }
    j++;
    int i = 0;
    for (; j < a.length; j++) {
      a[i++] = a[j];
    }
    return i;
  }
更多追问追答
追问
好像不是我想要的结果,不过谢谢您了,我刚刚调试了下,
if (a[i] == '') {

}
这个if结构没有进去 会不会是条件出错了?
追答

先看下最终结果对不对。

如果需要的话可以在最后加上把超出有效元素部分清零的代码。

  /**
   * @param a
   * @return 处理后的有效元素个数。
   */
  public static int process(char[] a) {
    int j = a.length - 1;
    for (int i = a.length / 2 - 1; i >= 0; i--) {
      a[j--] = a[i];
      if (a[i] == '<' && i <= a.length / 2 - 1 - 2 && a[i + 1] == '/'
          && a[i + 2] == '>') {
        a[j--] = '>';
        a[j--] = '/';
        a[j--] = '<';
      }
    }
    j++;
    int i = 0;
    for (; j < a.length; j++) {
      a[i++] = a[j];
    }
    for (int k = i; k < a.length; k++) {
      a[k] = 0;
    }
    return i;
  }
匿名用户
2016-08-05
展开全部
JAVA里向一个已经满的数组插入数据可以使用Arrays.copyOf方法实现。
实现代码:
int[] arr=new int[]{1,2,3,4,5};
arr=Arrays.copyOf(arr, arr.length+1);//数组扩容
arr[arr.length-1]=6; //插入数据
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+",");
}
追问
没有满,数组为100 ,前50有效, 说明后面还有50是空的,
其实这个问题就是 在指定的位置插入字符,然后指定位置后面的字符全部向后移动,
是这样一个逻辑思维。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式