为了账号安全,请及时绑定邮箱和手机立即绑定

在 2 行上显示文本视图(任意字符串长度)

在 2 行上显示文本视图(任意字符串长度)

qq_花开花谢_0 2023-09-13 15:40:47
我有一个字符串数组如下:[“你好”,“说再见”,“我是开发人员”,“Java是一种面向对象的语言”,“Web应用程序编程,...]如果字符串超过一个单词,我想在 TextView 上显示两行,并且两行之间的字符数差异最小。例如:“Web应用程序编程”应该是“Web应用程序编程”,而不是“Web应用程序编程”。有什么办法可以做到这一点吗?
查看完整描述

1 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

这应该适合您的问题:


private String wrapText(String in) {

    String r;

    if(in.contains(" ")) {

        int middle = in.length() / 2;

        int before = getSpaceBeforeIndex(in, middle);

        int after = getSpaceAfterIndex(in, middle);


        int rightOne;


        if(before == -1) {

            rightOne = after;

        } else if(after == -1) {

            rightOne = before;

        } else {

            rightOne = (middle - before) < (after - middle)? before : after;

        }


        r = in.substring(0, rightOne) + "\n" + in.substring(rightOne);

    } else {

        r = in;

    }


    return r;

}


private static int getSpaceBeforeIndex(String in, int index) {

    String cut = in.substring(0, index);

    int firstSpace = cut.lastIndexOf(" ");

    return firstSpace;

}


private static int getSpaceAfterIndex(String in, int index) {

    int nextSpace = in.indexOf(" ", index);

    return nextSpace;

}


查看完整回答
反对 回复 2023-09-13
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信