宝石之轮电玩新势力 绿宝石mtv手机上玩卡吗

404 Not Found
404 Not Found
wzws-cacheJava面试题(1)
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
GB2312、GBK、GB18030,CP936以及CNS11643都满足条件 -- 中文是占用2个字节的,英文是占用1一个字节 。
因为中文转换为byte字节,随着编码的不同,转换的字节长度也会不通,如编码为UTF-8,一个中文字符串转换为byte占三个字节.
package com.
import java.io.UnsupportedEncodingE
public class CharactersSplit {
* @param text
目标字符串
* @param length
* @param encode
采用的编码方式
* @throws UnsupportedEncodingException
public static String substring(String text, int length, String encode)
throws UnsupportedEncodingException {
if (text == null) {
StringBuilder sb = new StringBuilder();
int currentLength = 0;
for (char c : text.toCharArray()) {
currentLength += String.valueOf(c).getBytes(encode).
if (currentLength &= length) {
sb.append(c);
return sb.toString();
public static void main(String[] args) throws UnsupportedEncodingException {
String text = &我ABC汉DEF&;
int length1 = 3;
int length2 = 6;
String[] encodes = new String[] { &GB2312&, &GBK&, &GB18030&, &CP936&,
&CNS11643&, &UTF-8& };
for (String encode : encodes) {
System.out.println(new StringBuilder().append(&用&).append(encode)
.append(&编码截取字符串 -- 【&).append(text).append(&】&)
.append(length1).append(&个字节的结果是【&)
.append(substring(text, length1, encode)).append(&】&)
.toString());
System.out.println(new StringBuilder().append(&用&).append(encode)
.append(&编码截取字符串 -- 【&).append(text).append(&】&)
.append(length2).append(&个字节的结果是【&)
.append(substring(text, length2, encode)).append(&】&)
.toString());
运行后输出:
用GB2312编码截取字符串 -- 【我ABC汉DEF】3个字节的结果是【我A】
用GB2312编码截取字符串 -- 【我ABC汉DEF】6个字节的结果是【我ABC】
用GBK编码截取字符串 -- 【我ABC汉DEF】3个字节的结果是【我A】
用GBK编码截取字符串 -- 【我ABC汉DEF】6个字节的结果是【我ABC】
用GB18030编码截取字符串 -- 【我ABC汉DEF】3个字节的结果是【我A】
用GB18030编码截取字符串 -- 【我ABC汉DEF】6个字节的结果是【我ABC】
用CP936编码截取字符串 -- 【我ABC汉DEF】3个字节的结果是【我A】
用CP936编码截取字符串 -- 【我ABC汉DEF】6个字节的结果是【我ABC】
用CNS11643编码截取字符串 -- 【我ABC汉DEF】3个字节的结果是【我A】
用CNS11643编码截取字符串 -- 【我ABC汉DEF】6个字节的结果是【我ABC】
用UTF-8编码截取字符串 -- 【我ABC汉DEF】3个字节的结果是【我】
用UTF-8编码截取字符串 -- 【我ABC汉DEF】6个字节的结果是【我ABC】
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:178234次
积分:2979
积分:2979
排名:第9091名
原创:117篇
转载:59篇
评论:48条
阅读:2216
阅读:2203
阅读:4663
(7)(8)(3)(5)(9)(3)(6)(2)(1)(1)(22)(3)(4)(1)(3)(4)(2)(2)(1)(2)(18)(4)(3)(2)(7)(7)(8)(3)(8)(16)(12)共有1554位成员   人气指数 -   最新排名 -
【话题】一个字符串 怎么去掉第一个和最后一个字符?
08:43:41 来自:俐之心语 浏览数:21次
一个字符串 怎么去掉第一个和最后一个字符?
str=&12345&;
再有 正则表达式是什么东西& - -
mengxiangyu回复于17日08点49分 
str.subString(1,str.length()-1);
目前我一般有这种方法,不知道你想要的是哪种?
小学二年级回复于17日08点57分 
没有看清题:
正则表达式(regular expressions)是一种描述字符串集的方法,它是以字符串集中各字符串的共有特征为依据的。正则表达式可以用于搜索、编辑或者是操作文本和数据。它超出了 Java 程序设计语言的标准语法,因此有必要去学习特定的语法来构建正则表达式。
..............出自火龙果翻译的 &Java正则表达式教程&
学习java有两个离不开的工具.
1.API文档.像你的第一个问题,答案就是API文档中.要习惯查API文档。
2.google,如第一工具得不到结果,你就可以用google搜之。
以上两个工具都得不到结果时,再发贴提问。
buzzy回复于17日09点03分 
wendyanna回复于17日09点12分 
str.substring(1,str.length-1);
J2EE的其他话题...
热门脚本语言:java 截取字符串转整数之后减一个数保留截取整数前面有零 - 开源中国社区
当前访客身份:游客 [
当前位置:
public class test {
public static void main(String[] args) {
String yy=new String(&Mdt&);
String tt=yy.substring(yy.length()-4, yy.length());
System.out.println(tt);
System.err.println(tt.format(&%4d&,Integer.parseInt(tt)-1));
} 结果为:0009
&&&&&&&&&&&&&& 8
希望结果为:0009&&&&&&&&&&&&&&&&0008
共有3个评论
用 java.text.NumberFormat 这个类,用法去看 Java 的
哦,谢谢了
你减完了以后在用NumberFormat去格式化一下就好了。
NumberFormat nf = new DecimalFormat(&0000.00&);
String str = nf.format(数字);
System.out.println(str);
更多开发者职位上
有什么技术问题吗?
钟志敏的其它问题
类似的话题java 如何截取这样的字符串_java吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:551,124贴子:
java 如何截取这样的字符串收藏
String str="aaa!bbbb!cc123!.doc";我如何把 bbbb 截取出来? 需要说明的是 字符串的长度不固定,但是 “!”是固定的。说白了我就是取
“!” 之间的bbbb
挂机一个月得百万,你还蓝瘦香菇么?
正则表达式,匹配
int i1=str.indexOf("!b");int i2=str.indexOf("b!");String strend=str.substring((i1+1),i2);strend就是一串b
我bbb的内容也不是固定的
你都不固定你要截取什么?你连截取的什么都不知道,那截取个毛线啊?总要有个要求吧?
就是从第一个感叹号开始到第二个感叹号结束 之间的内容啊?
我的问题说的很清楚了啊
int i=str.indexOf("!");String str1=str.substring(i+1);int i=str.indexOf("!");String strend=str.substring(0,i-1)
正在表达式 如何,望指教一下啊?
int i=str.indexOf("!");String str1=str.substring(i+1);int i=str1.indexOf("!");String strend=str1.substring(0,i);
上海java培训,选达内,美国上市教育机构,「java培训之父」Sun认证,先就业后付款!达内java培训,名师授课,0基础120天速成java工程师,0元试学!学习+认证+就业=薪前景!
去看String的API
唔。。。疏忽。。复制之后忘记下面的添加了个str1,另外结束是要i-1如果是i的话,截取的就包含后面的感叹号了啊,不应该是i啊int i=str.indexOf("!");String str1=str.substring(i+1);int i=str.indexOf("!");String strend=str1.substring(0,i-1)
擦,还是漏了个1int i=str.indexOf("!");String str1=str.substring(i+1);int i=str1.indexOf("!");String strend=str1.substring(0,i-1)
你真耐心。谢谢你。听说有正则表达式一下就搞定了
public static void main(String[] args){
String str = "aaaa!bbbbbbbbb!fsdfasdf!fsdfjkl!bbb!bbbbbbbssdf!ssd";
Pattern p = pile("![b]+!");
Matcher m = p.matcher(str);
while(m.find()){
System.out.println(m.group());
} }所得结果:!bbbbbbbbb!!bbb!给个粉就好~~~~
亲,粉一个撒,有问题还可以帮你,不粉我就跑了
import java.util.regex.*;要加这个,忘记打给你了
既然!是固定的还截取什么,直接用split(&!&)这个方法不就行了么
遍历你字符串里的! 取!的下表。 再截取啊。
正则表达式神马的没学过。。。只会用sub。。。。。
怎么粉,不会,我刚来这个贴吧
int i=str.indexOf("!");String str1=str.substring(i+1);i=str1.indexOf("!");str1=str1.substring(0,i);目测不如运行
亲,你这个是不行的~~~不要试了,你的出发点就已经错了如果给你的字符串换成asdfsd!fsdf!bbbbb!sdf这种呢?再换一个代码?如果再给你换成 asdf!fsdf!fsdf!!...!bbbbb!ssss呢?又需要更换一次代码?再换么?
再看1楼"需要说明的是 字符串的长度不固定,但是 “!”是固定的。"
再看5楼"我bbb的内容也不是固定的"是谁审题不清啊 亲?
正则匹配,别的不好使
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 手机电玩城 的文章

 

随机推荐