我正在尝试为我正在执行的程序创建自己的工具提示,我希望工具提示的文本适合每行最大字母数固定的框(比如 12)。
例如,考虑以下字符串:
String example = "Hello my name is Martin"; //(23 letters)
所以现在我想将此文本放入一个框中。
此字符串的正确格式文本应如下所示:
line 1: "Hello my"
line 2: "name is"
line 3: "Martin"
我真的不知道如何解决这个问题。我想到的一件事是在每个 ""
之后拆分输入字符串,例如:
String[] splittedExample = example.split("\\s+");
但是我需要一种算法来检查这些数组内容中有多少可以写在一行中,直到达到最大值 12。
我也愿意接受任何其他解决方案。
如果有人知道我如何做到这一点,那就太好了。另外,我希望将这些行存储在一个字符串数组中。
谢谢
最佳答案
您可以编写自己的方法来做到这一点:
public static String getLimitedString(String str, int len){
StringBuilder txt = new StringBuilder();
while(str.length() > 0){
if(str.length() < len){
txt.append(str.trim());
str = "";
}
else if(str.charAt(len) == ' '){
txt.append(str.substring(0, len+1).trim() + "\n");
str = str.substring(len+1);
}
else{
txt.append(str.substring(0, str.lastIndexOf(' ', len)).trim() + "\n");
str = str.substring(str.lastIndexOf(' ', len));
}
}
return txt.toString();
}
测试:
System.out.println(getLimitedString("Hello my name is Martin", 12));
输出:
Hello my
name is
Martin
关于java - 剪切文本以适合框(工具提示),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35658722/