问题是找文字的位置,文字即有占一个字符的情况,也有占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 加的都必须是自己位置的那个数
应该怎么实现?
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 加的都必须是自己位置的那个数
应该怎么实现?
你直接操作String不是更方便!String s = new String(space,"GBK"); //
怎么做到这样取值:
零 --〉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];
但你非要那么做也可以
首先把它们作为String来对待
然后,汉字的Unicode码都是1000以上的,而数字的都是在其以下的。String A = ...
if(((int)A) > 1000){
x1 += space[2*k];
} else {
x1 += space[k];
}
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);
}
}
for(int i=0;i<bs.length;i++) {
if(bs[i]<0) {
System.out.println(2);
i++;
}else {
System.out.println(1);
}
}