假设现在有一个字符串"我叫ABC哈哈";
要求得到 前n个字节的字符串。n是自定义的数字。
比如:
输入1,得到的是 "我"
输入2,得到的是 "我"
输入3,得到的是 "我叫"
输入4,得到的是 "我叫"
输入5,得到的是 "我叫A"
输入6,得到的是 "我叫AB"
。。。。
应该表达清楚了, 这里只是举个例子,,
给定的字符串是 人为输入的,不是一定的
------解决方案--------------------
这是自己出的吧。
条件不足。
------解决方案--------------------
正常的是,你为什么会是上面的结果怎么区分?
我
我叫
我叫A
我叫AB
我叫ABC
我叫ABC哈
------解决方案--------------------
java里统一了汉字、英文占的字节数了吧。
n是字符结果如楼上所写,n是字节,n=1,也不可能输出“我”
------解决方案--------------------
public static String getBytes(int count,String str){
byte[] bytes = str.getBytes();
String str1 = new String(bytes,0,count);
while(!str.contains(str1)){
str1 = new String(bytes,0,++count);
}
return str1;
}
------解决方案--------------------
你把面试题下下来看看?
------解决方案--------------------
厉害。
------解决方案--------------------
4F的是我第一反应,但不是最优解
------解决方案--------------------
public class java {
public static String getBytes(int count,String str){
byte[] bytes = str.getBytes();
String str1 = new String(bytes,0,count);
while(!str.contains(str1)){
str1 = new String(bytes,0,++count);
}
return str1;
}
public static String getBytes2(int count,String str){
byte[] bytes = str.getBytes();
int i = 0;
while(i<count){
if(bytes[i] >= 0){
i++ ;
}else{
i += 2;
}
}
return new String(bytes,0,i);
}
public static void main(String[] args){
String s = "我叫ABC哈哈哈";
for(int i = 1 ;i<9;i++){
System.out.println(getBytes(i,s ));
}
for(int i = 1 ;i<9;i++){
System.out.println(getBytes2(i,s ));
}
}
}
------解决方案--------------------