加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在其他数组中分隔数组

发布时间:2020-12-15 04:24:34 所属栏目:Java 来源:网络整理
导读:我有一个数组,我需要分成不同的数组.我有一个字符串数组,需要将它分成不同的页面(不同的数组). 首先,我得到了数组的长度 int size = array.length; 然后,我得到了我需要的页数,知道每个页面应该只有10个字符串 int numberOfPages = (int) Math.floor(size/10
我有一个数组,我需要分成不同的数组.我有一个字符串数组,需要将它分成不同的页面(不同的数组).

首先,我得到了数组的长度

int size = array.length;

然后,我得到了我需要的页数,知道每个页面应该只有10个字符串

int numberOfPages = (int) Math.floor(size/10);

然后,用户选择他想要查看的页面

int pageSelected = 2;

之后,我尝试拆分数组,但有一些例外.我试过了:

Arrays.copyOfRange(array,(0+10*(pageSelected-1),10*10+(pageSelected-1)));

当我尝试打印新数组的值时出现异常.

无论如何在“页面”中拆分数组,并将这些“页面”显示为请求?

@ EDIT1
我得到一个Nullpointer异常

解决方法

错误可能发生在这一行:

Arrays.copyOfRange(array,10*10+(pageSelected-1)));

括号中存在错误(方法需要三个参数,但从方法的角度来看,您只提供两个:最后两个按括号分组).您可以使用:

Arrays.copyOfRange(array,10*(pageSelected-1),10*10+(pageSelected-1));

(删除0,因为这没用).

此外,你犯了一个语义错误:10 * 10(pageSelected-1)应替换为:10 10 *(pageSelected-1

全行如下:

Arrays.copyOfRange(array,10+10*(pageSelected-1));

虽然更好的指导方针是使用小步骤:

int i = pageSelected-1;
int g = 10*i;
Arrays.copyOfRange(array,g,g+10);//do something with the result

为了做到最好,你最好将变量用于常量,这样 – 如果你改变主意 – 你可以轻松修改每页的项目数:

int i = pageSelected-1;
int perpage = 10;
int g = perpage*i;
Arrays.copyOfRange(array,g+perpage);//do something with the result

最后一个小小的评论:正如@j_v_wow_d所说,你应该将该部门细化,否则你将为11个项目生成一页.因此,numberOfPages的正确代码是:

int numberOfPages = (int) Math.ceil((double) size/perpage);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读