正确添加文字的位置问题

miyuki_li 2008-02-13 05:33:56
问题是找文字的位置,文字即有占一个字符的情况,也有占2个的情况,还有混合的情况 文字是String型的 位置是float[];

space[10]={51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0};//全一个字符的 如“0123456789”
space[10]={51.0,0.0,52.0,0.0,53.0,0.0,54.0,0.0,55.0,0.0} ; //全两个字符的 如“零一二三四五六七八九”
space[10]={51.0,0.0,52.0,0.0,53.0,54.0,55.0,0.0,56.0,56.0}; //混合的 如“零一23四56”

一部份处理是:
for(int k=0;k<textStr.length;k++)
{
if(space.length==2*textStr.length()){ //2个字符的
x1 += space[2*k];
}else
x1 += space[k]; //1个字符的
}

混合的情况怎么处理?
要每次循环 x1 加的都必须是自己位置的那个数
应该怎么实现?
...全文
108 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
老紫竹 2008-02-18
  • 打赏
  • 举报
回复
    byte[] bs = str.getBytes("GBK");
for(int i=0;i<bs.length;i++) {
if(bs[i]<0) {
System.out.println(2);
i++;
}else {
System.out.println(1);
}

}
老紫竹 2008-02-18
  • 打赏
  • 举报
回复
  public static void main(String[] args) throws UnsupportedEncodingException {
double[] space = { 51.0, 0.0, 52.0, 0.0, 53.0, 54.0, 55.0, 0.0, 56.0, 56.0 };
String str = "零一23四56";
char[] chs = str.toCharArray();
for (char c : chs) {
System.out.println(Character.toString(c).getBytes("GBK").length);
}
}
yuanqingfei 2008-02-15
  • 打赏
  • 举报
回复
老紫竹的方法最好,
但你非要那么做也可以
首先把它们作为String来对待
然后,汉字的Unicode码都是1000以上的,而数字的都是在其以下的。

String A = ...
if(((int)A) > 1000){
x1 += space[2*k];
} else {
x1 += space[k];
}
miyuki_li 2008-02-15
  • 打赏
  • 举报
回复
没有人解答?
miyuki_li 2008-02-15
  • 打赏
  • 举报
回复
为艺术而技术:(int)A 对么?
miyuki_li 2008-02-14
  • 打赏
  • 举报
回复
楼上两位,我是想把字符串“零一23四56”添加到一张图片中,他的位置已经算出来了是 space[10]={51.0,0.0,52.0,0.0,53.0,54.0,55.0,0.0,56.0,56.0};
怎么做到这样取值:
零 --〉x1+=space[0]
一 --〉x1+=space[2]
2 --〉x1+=space[4]
3 --〉x1+=space[5]
四 --〉x1+=space[6]
5 --〉x1+=space[8]
6 --〉x1+=space[9]
if(space.length==2*textStr.length()){
x1 += space[2*k];
}else if( ) //以及这里如何判断
x1 += space[?]
else
x1 += space[k];
网络咖啡 2008-02-13
  • 打赏
  • 举报
回复
使用Font对象的stringWidth方法计算字符串的长度即可
老紫竹 2008-02-13
  • 打赏
  • 举报
回复
为何不读入后转化为java里面的String, 他会自动对应单字节和双字节的。
你直接操作String不是更方便!

String s = new String(space,"GBK"); //

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧