菜鸟第一次参加笔试,大悲剧

一位应届毕业生在参加笔试时遇到编程题,要求实现一个按字节截取包含中文汉字的字符串的方法。文章分享了作者的解题思路及两段不同的代码实现,并表达了对后续面试的期待。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

:x 可怜的应届生第一次参加笔试,见到个编程题,就是写个方法按字节截取含有中文汉字的字符串。自己想起来以前看过这个题目,主要就是碰到汉字的时候,把循环次数减一。然后就慢慢想,结果细节都忘记了,只能自己写,感觉自己能写出来。最后写出来这个
public static String cutString(String firstString, int cutNum) {
char[] firstChar = firstString.toCharArray();
StringBuffer secondString = new StringBuffer();
for(int i = 0; i < cutNum; i++) {
secondString.append(firstChar[i]);
if(firstChar[i] > 'z') {
cutNum--;
}
}
return secondString.toString();
}


笔试的时候,忘记字符串转成字符数组的方法,把toCharArray()写成了toChar()。等这个写完的时候,后面还有3道SQL查询题目,结果人家过来收卷了。问几个同学,他们编程题都放弃的。感觉这次笔试已经挂了,前面几个简答题也没答好。

回来找找以前的资料,以前的截取代码
public static String cutString(String firstString, int cutNum) {
StringBuffer buff = new StringBuffer();
char c;
for(int i = 0; i < cutNum; i++) {
c = firstString.charAt(i);
buff.append(c);
if(TestByte2.isChinese(c)) {
cutNum--;
}
}

return buff.toString();
}
public static boolean isChinese(char c) {
return String.valueOf(c).getBytes().length > 1;
}


明天还有面试,赶紧复习下基础知识,祝自己好运。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值