假设“i”的物理长度是1,我按照长度3为单位截取字符串,想得到如下结果:
啊,哦,哦,12,34,m,w,iii,什,么,!?。
哪位大神有比较好的方法?
14 个解决方案
#1
汉字的长度固定可以认为是3,数字的话我不知道设为1.5是不是足够恰当。
问题主要是字母和标点的长度,我不想用好几个Switch来挨个计算,计算出和来加出字符串的长度。
我其实是希望有一个类似于自动换行的方法。。。
问题主要是字母和标点的长度,我不想用好几个Switch来挨个计算,计算出和来加出字符串的长度。
我其实是希望有一个类似于自动换行的方法。。。
#2
不懂这样截取,有什么用?
#3
想让输出的信息输出成自定义的形状
#4
啊哦哦1234mwiii什么!?按3个截后面不是应该是类似123,4mw,iii么前面的先无视....
#5
我觉得数字的size应该比字母i大,但具体的比例我不清楚
#6
不应该说size,应该说宽度?
#7
写个方法。 遇到中文判断几位,字母几位的。
#8
啊哦哦1234mwiii什么!?按3个截后面不是应该是类似123,4mw,iii么前面的先无视....
我觉得数字的size应该比字母i大,但具体的比例我不清楚
不应该说size,应该说宽度?
额~还有就是不同编码的话占用字节数也不一样
#9
测试之后配合正则截取
#10
你这个 英文字母有的要一位 有的要三位 我觉得你规则说的还不够清楚
#11
你这个 英文字母有的要一位 有的要三位 我觉得你规则说的还不够清楚
恩。。。是的,其实就是我想有一个类似于String.length()方法的的String.width()方法。
就比如这样
我从山中来!!
abiisssbnai
mmmmmm
iiiiiiiiiiiiiiiiiiiiii
?~哟吼吼~_
这四句的getWidth()是相等的。
#12
我从山中来
abiisssbna
mmmmmm
iiiiiiiiiiiiiiiiiiiiii
?~哟吼吼~
错了是这四句
我从山中来
abiisssbna
mmmmmm
iiiiiiiiiiiiiiiiiiiiii
?~哟吼吼~
abiisssbna
mmmmmm
iiiiiiiiiiiiiiiiiiiiii
?~哟吼吼~
你这个 英文字母有的要一位 有的要三位 我觉得你规则说的还不够清楚
恩。。。是的,其实就是我想有一个类似于String.length()方法的的String.width()方法。
就比如这样
我从山中来!!
abiisssbnai
mmmmmm
iiiiiiiiiiiiiiiiiiiiii
?~哟吼吼~_
这四句的getWidth()是相等的。
错了是这四句
我从山中来
abiisssbna
mmmmmm
iiiiiiiiiiiiiiiiiiiiii
?~哟吼吼~
#13
你在控制台输出的话这个宽度是没有区别的吧!
#14
String str = "123456789asdfgfaioejw什么鬼-。;‘。";
int n = 4;
for(int i =0; i<str.length();i=i+n){
int k = i + n;
if(k>str.length()) k=str.length();
System.out.println(str.substring(i,k));
}
int n = 4;
for(int i =0; i<str.length();i=i+n){
int k = i + n;
if(k>str.length()) k=str.length();
System.out.println(str.substring(i,k));
}
#1
汉字的长度固定可以认为是3,数字的话我不知道设为1.5是不是足够恰当。
问题主要是字母和标点的长度,我不想用好几个Switch来挨个计算,计算出和来加出字符串的长度。
我其实是希望有一个类似于自动换行的方法。。。
问题主要是字母和标点的长度,我不想用好几个Switch来挨个计算,计算出和来加出字符串的长度。
我其实是希望有一个类似于自动换行的方法。。。
#2
不懂这样截取,有什么用?
#3
不懂这样截取,有什么用?
想让输出的信息输出成自定义的形状
#4
啊哦哦1234mwiii什么!?按3个截后面不是应该是类似123,4mw,iii么前面的先无视....
#5
啊哦哦1234mwiii什么!?按3个截后面不是应该是类似123,4mw,iii么前面的先无视....
我觉得数字的size应该比字母i大,但具体的比例我不清楚
#6
啊哦哦1234mwiii什么!?按3个截后面不是应该是类似123,4mw,iii么前面的先无视....
我觉得数字的size应该比字母i大,但具体的比例我不清楚
不应该说size,应该说宽度?
#7
写个方法。 遇到中文判断几位,字母几位的。
#8
啊哦哦1234mwiii什么!?按3个截后面不是应该是类似123,4mw,iii么前面的先无视....
我觉得数字的size应该比字母i大,但具体的比例我不清楚
不应该说size,应该说宽度?
额~还有就是不同编码的话占用字节数也不一样
#9
测试之后配合正则截取
#10
你这个 英文字母有的要一位 有的要三位 我觉得你规则说的还不够清楚
#11
你这个 英文字母有的要一位 有的要三位 我觉得你规则说的还不够清楚
恩。。。是的,其实就是我想有一个类似于String.length()方法的的String.width()方法。
就比如这样
我从山中来!!
abiisssbnai
mmmmmm
iiiiiiiiiiiiiiiiiiiiii
?~哟吼吼~_
这四句的getWidth()是相等的。
#12
我从山中来
abiisssbna
mmmmmm
iiiiiiiiiiiiiiiiiiiiii
?~哟吼吼~
错了是这四句
我从山中来
abiisssbna
mmmmmm
iiiiiiiiiiiiiiiiiiiiii
?~哟吼吼~
abiisssbna
mmmmmm
iiiiiiiiiiiiiiiiiiiiii
?~哟吼吼~
你这个 英文字母有的要一位 有的要三位 我觉得你规则说的还不够清楚
恩。。。是的,其实就是我想有一个类似于String.length()方法的的String.width()方法。
就比如这样
我从山中来!!
abiisssbnai
mmmmmm
iiiiiiiiiiiiiiiiiiiiii
?~哟吼吼~_
这四句的getWidth()是相等的。
错了是这四句
我从山中来
abiisssbna
mmmmmm
iiiiiiiiiiiiiiiiiiiiii
?~哟吼吼~
#13
你在控制台输出的话这个宽度是没有区别的吧!
#14
String str = "123456789asdfgfaioejw什么鬼-。;‘。";
int n = 4;
for(int i =0; i<str.length();i=i+n){
int k = i + n;
if(k>str.length()) k=str.length();
System.out.println(str.substring(i,k));
}
int n = 4;
for(int i =0; i<str.length();i=i+n){
int k = i + n;
if(k>str.length()) k=str.length();
System.out.println(str.substring(i,k));
}