关于一大段英语单词字符输出按指定屏幕长度和换行输出在屏幕上的方法,且换行时如果是一个单词没有展示完,会在最后处加上“—”字符。在第二行继续展示的方法。
来源:互联网 发布:粤语歌 其他方言 知乎 编辑:程序博客网 时间:2024/05/04 06:51
1。定义一个字符,来放你要输出的文字
String strAbout="My father was a self-taught mandolin player. He\n"+" was one of the best string instrument players in\n"+" our town. He could not read music";
2.再定义一个字符数组,把你要输出的文字整合到该数组。
public String strAboutSZ[];
strAboutSZ = Test1(strAbout, WIDTH - 55(这是输出在屏幕在一行的宽度), smallFont(字的大小), '\n'(主动换行标识符));
这是Test1方法,
String lst_string[];// 列表字符串
int list_scrolly = 26;
int fontHeight = smallFont.getHeight() + 1;
public static String[] Test1(String text, int width, Font font,
char newLine) {
Vector vector = new Vector();
int offset = 0;
int maxLength = text.length(); // 字符串总长度
boolean endFlag; // 标记是否已经换行
while (offset < maxLength) {
if (text.charAt(offset) == newLine) {
// 如果第一个字符是换行符,添加一个空串,偏移值加一,继续检索
vector.addElement("");
offset++;
} else {
endFlag = false;
for (int i = 1; offset + i < maxLength; i++) {
if (text.charAt(offset + i) == newLine) {
// 遇到换行符,添加子串
int diff = offset + i;
if (newLine == '\n') {
diff += 1;
}
vector.addElement(text.substring(offset, diff));
offset += i + 1;
endFlag = true;
break;
} else if (font.charsWidth(text.toCharArray(), offset,
i + 1) > width) {
// 子串长度大于指定宽度,终止搜索,添加子串
if (i >= 2 && isLetter(text.charAt(offset + i))
&& isLetter(text.charAt(offset + i - 1))) {
// 判断结束相关的3个字符类型为字母,则添加换行连接符”-“
if (isLetter(text.charAt(offset + i - 2)))
vector.addElement(text.substring(offset, offset + i - 1) + "-");
else
vector.addElement(text.substring(offset, offset+ i - 1));
offset += (i - 1);
} else {
vector.addElement(text
.substring(offset, offset + i));
offset += i;
}
endFlag = true;
break;
}
}
if (!endFlag) {
// 搜索到整个原始串的结尾时,添加剩余的部分
vector.addElement(text.substring(offset));
break;
}
}
}
int size = vector.size();
String[] txt = new String[size];
for (int i = 0; i < size; i++)
txt[i] = ((String) vector.elementAt(i));
return txt;
}
// 字母ASCII码,A-Z:65-90,a-z:97-122
public static boolean isLetter(char c){
if((c >= 65 && c <= 90) || (c >= 97 && c <= 122))
return true;
return false;
}
3,。输出字符串在屏幕上
for (int i = 0; i < strAboutSZ.length; i++) {
g.drawString( strAboutSZ[i], 240, 20 + i
* (smallFont.getHeight()+10)(每行字的距离),17);
}
- 关于一大段英语单词字符输出按指定屏幕长度和换行输出在屏幕上的方法,且换行时如果是一个单词没有展示完,会在最后处加上“—”字符。在第二行继续展示的方法。
- 一大段中文字符输出按指定屏幕长度和换行输出在屏幕上的方法。
- 编写一个在屏幕指定位置输出特定字符和特定颜色的子程序
- 在屏幕上用*输出任何长度的菱形
- 在屏幕上用“*”输出指定行数的菱形图案
- 编程实现由键盘输入一个字符后,在屏幕上输出该字符
- 展示在屏幕上的控件的归纳
- 在两组内容之间输出空行(意思就是在最后一行时只有一个换行而没有空行)
- 开机默认设置一个widge在指定的屏幕上和自动在桌面上创建一个应用的快捷方式的方法
- J2ME中,如果要在最后位置添加一个字符,实现的方法
- 在屏幕上输出一个菱形
- mysql如何把在屏幕上输出的结果输出到一个文件上?
- mysql如何把在屏幕上输出的结果输出到一个文件上?
- 在屏幕上输出图案
- 在屏幕上输出菱形
- 实现在表格单元格中控制输出字符的长度
- 在主方法中创建String对象,将字符变量原来的长度与去掉前导和尾部空格后的长度输出
- 输出字符串最后一个单词的长度
- 编码问题之:java.io.UTFDataFormatException: Invalid byte 2 of 2-byte UTF-8 sequence.
- 走和不走validation的方法
- Spring中使用proxool的配置
- rails常用验证方法
- vi E212:Can't open file for writing 报错
- 关于一大段英语单词字符输出按指定屏幕长度和换行输出在屏幕上的方法,且换行时如果是一个单词没有展示完,会在最后处加上“—”字符。在第二行继续展示的方法。
- SQL心得:在含有GROUP BY的SELECT语句中显示COUNT()为0的结果
- Rails中使用flash总结
- [java起步] 数据类型转换
- at&t linux汇编语言
- Nginx学习之十三-负载均衡-IP哈希策略剖析
- CSS3-html5在线测试
- 不要让你的Rails Validate吓着了用户
- 虚拟机与宿主机以外的局域网中的其它主机ping不通