社区
J2ME
帖子详情
关于读外部text文件,并自动换行显示。
efeng0973
2004-08-11 03:46:30
我在做一个养成类游戏,因为文字信息量比较大,所以用一个text文件记录文字,然后加到包里,请问怎样把中文字符读进来,放在一个数组里,然后显示在屏幕上,并自动换行。根据屏幕宽度来决定显示几个字符。
...全文
421
7
打赏
收藏
关于读外部text文件,并自动换行显示。
我在做一个养成类游戏,因为文字信息量比较大,所以用一个text文件记录文字,然后加到包里,请问怎样把中文字符读进来,放在一个数组里,然后显示在屏幕上,并自动换行。根据屏幕宽度来决定显示几个字符。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
flyingghost
2004-08-16
打赏
举报
回复
楼上,是你的编码方式不对。电脑模拟器上一般默认是GBK,但手机上不是。甚至不一定支持GBK。最好用UTF-8。
goodnow
2004-08-16
打赏
举报
回复
底下是我自己写的读取文件中一行字符的方法,虽然能顺利读出第lineNumber行
但是还有一个问题没有解决:在模拟器上能正常显示出中文,
而在N7650上却显示乱码,希望能进一步改进
private String myReadLine (int lineNumber) {
String testFileName = "/test.txt"; //测试的文本文件名
ByteArrayOutputStream s;
InputStream in;
// 一行文本是以行结束标志(\n or \r)为终止的一行字符 一般是'\r'0D(13)后'\n'0A(10)
in = this.getClass().getResourceAsStream(testFileName);
s = new ByteArrayOutputStream();
try{
int ch=0;
int i=0;
while (i<lineNumber-1){ //跳过前面的n-1行
ch = in.read();
if (ch == 13) i++;
}
ch=in.read();
if ( ch ==10 || ch ==13) ch=in.read(); //若前面没有把换行符去除干净 则跳过一个字符
while ( ch !=13 && ch !=10 &&ch!=-1 ) {
s.write( ch );
ch=in.read();
}
in.close();
} catch (IOException ioe){
System.out.println(ioe.toString());
}
String str = s.toString();
try{
s.close();
} catch (IOException ioe){
System.out.println(ioe.toString());
}
return str.trim();
}
hesi726
2004-08-16
打赏
举报
回复
老兄啊,你这个问题时 编解码的转换问题啊!!
熟不熟悉UTF-8编码??
不熟悉的话,建议你上 google 找找看别人有没有编解码的类吧!!
或者看看,也很简单的!!一个中文的两个字节变成3个字节而已! ^_^
goodnow
2004-08-16
打赏
举报
回复
问题就在于文件中是ANSI方式编码的若干行中英文,
该如何读出并转换成UTF-8?
朋友别哭
2004-08-15
打赏
举报
回复
up
prok
2004-08-12
打赏
举报
回复
分别判断屏幕和字符串长度
zcwhgj
2004-08-11
打赏
举报
回复
这个例子是计算字符数及其宽度进行换行显示的东西.
private int appelement(String str, xx k1){
int nextBeginx = currentBeginx;
int strlength=str.length();
int endpos =0;
int strWidth=displayFont.stringWidth(str);
int subStringWidth=0;
//Integer hashIndex =new Integer(-1);
if(strlength>0){
if (strWidth >= displayWidth - currentBeginx) {
//需要进行载取
int slen =0;
do{
subStringWidth = displayFont.substringWidth(str, endpos, ++slen);
if (subStringWidth >= displayWidth-currentBeginx) {
if (k1 != null) {
k1.a(strList.size());
}
tuneCurStartY(displayFont.getHeight());
subStringWidth=displayFont.substringWidth(str,endpos, slen-1);
String s =str.substring(endpos, endpos+slen-1);
strList.addElement(new StringRegion(s,
currentBeginx,
getcurenBeginy(displayFont.getHeight(), true),
displayFont, colorType));
nextBeginx = 0;
endpos = endpos+slen-1;
slen = 0;
getNextBeginY(displayFont.getHeight());
}
else {
if (endpos+slen==strlength) {
if (k1 != null) {
k1.a(strList.size());
}
String s =str.substring(endpos, strlength);
strWidth = displayFont.stringWidth(s);
tuneCurStartY(displayFont.getHeight
strList.addElement(new StringRegion(s,
currentBeginx,
getcurenBeginy(displayFont.getHeight(), true),
displayFont, colorType));
currentBeginx =strWidth + currentBeginx;
nextBeginx = currentBeginx;
break;
//getNextBeginY(displayFont.getHeight());
}
}
}while(true);
}
else {
if (k1 != null) {
k1.a(strList.size());
}
tuneCurStartY(displayFont.getHeight());
strList.addElement(new StringRegion(str, currentBeginx,
getcurenBeginy(displayFont.getHeight(), true), displayFont,colorType));
currentBeginx += strWidth ;
nextBeginx=currentBeginx;
}
//重绘
}
if (strcanvas.blnScroll) {
strcanvas.repaint(0, 0, displayWidth, displayHeight);
}
return nextBeginx;
}
如何禁止RICH
TEXT
控件
自动换行
?(改编)
如何禁止RICH
TEXT
控件
自动换行
?问题描述:如何禁止RICH
TEXT
控件
自动换行
?解决方案:第一步:声明
外部
函数:Function ulong SendMessage(ulong hwnd,ulong wMsg,ulong wParam,ulong lParam) LIBRARY "user32.dll" ALIAS FOR "SendMessageA" 第二步:在
鸿蒙应用示例:实现文本高亮与
自动换行
需要注意的是,由于Span组件本身不支持直接设置背景颜色(即Span不支持.backgroundColor(Color.Orange)),因此设置背景色需要在Span
外部
嵌套ContainerSpan组件,并使用
text
BackgroundStyle属性来实现。对于需要高亮
显示
的关键字部分,我们通过ContainerSpan组件的
text
BackgroundStyle属性来改变其背景颜色,同时保持字体颜色为白色,以确保高亮效果明显。在这个例子中,我们需要将多行文本按照一定的规则
自动换行
。
CDC:Draw
Text
多行
显示
文本的问题(文本
自动换行
)
int Draw
Text
( HDC hDC, // handle to DC LPCTSTR lpString, //
text
to draw int nCount, //
text
length LPRECT lpRect, // formatting dimensions UINT uFormat //
text
-drawing opt
小程序rich-
text
内容换行失效的排查与修复指南
本文深入分析了小程序rich-
text
组件渲染后台富文本时内容换行失效的根本原因,即组件不附带浏览器默认样式。文章提供了从
外部
容器样式、内部样式注入到内容预处理的系统化排查与修复方案,重点解决了
、
等标签的换行问题,并给出了整合代码与进阶优化指南,帮助开发者彻底解决rich-
text
排版难题。
CSS3 文本效果(
text
-shadow,box-shadow,white-space等)文本溢出隐藏并且
显示
省略号
word-break 是一个 CSS 属性,用于控制文本在换行时的行为。它影响文本如何在块级元素中断行,尤其是在长单词或连续字符无法在正常换行点断开时的处理方式。word-wrap 是 CSS 的一个早期属性,用于控制长单词或 URL 是否在需要时被强制换行,以避免超出容器的宽度。文本会在正常的换行点(例如空格或连字符)断行,不会在单词内断行。描述:多个空格会被合并为一个,但文本不会换行,会一直
显示
在一行内,直到容器边界。描述:保留空格和换行符,但在需要时允许文本换行以适应容器的宽度。
J2ME
13,096
社区成员
26,491
社区内容
发帖
与我相关
我的任务
J2ME
Java J2ME
复制链接
扫一扫
分享
社区描述
Java J2ME
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章