用java设计一个程序算法,实现下列功能:输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证

用java设计一个程序算法,实现下列功能:输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”最好标明注释,黏贴的家伙就不用进来了

已经测试通过

public class SplitIt {
public static void main(String[] args) {
String str = "我ABC汉DEF";
int a = 6;
excute(str,a);
}
private static void excute(String str, int a) {
String temp = "";
int k = 0;
for (int i = 0; i < str.length(); i++) {
byte[] b = (str.charAt(i) + "").getBytes(); //每循环一次,将str里的值放入byte数组
k = k + b.length;
if (k > a) { //如果数组长度大于6,随机跳出循环
break;
}
temp = temp + str.charAt(i); //拼接新字符串
}
System.out.println(temp);
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-14
楼主不会是去的 广州五福堂 药店面试的吧?
第2个回答  2011-03-14
package wgw;;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class jiequ
{
public String str;
public int q;
public String fun(String str,int q) throws IOException
{ this.str=str;
this.q=q;
q=q/2;
String w=str.substring(0,q);
return w;
}

}

public class zuoye2 {

/**
* @param args2)编写一个截取字符的函数,
* 输入为一个字符串和字节数,输出为按字节截取的字符串,
但是要保证汉字不被截半个,如(“我ABC”,4)
,应该截为“我AB”,输入为(“我ABC汉DEF”,6),
应该截为“我ABC”,而不是“我ABC+汉的一半”
* @throws IOException
*/

public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
jiequ j=new jiequ();
BufferedReader bis=null;

bis=new BufferedReader(new InputStreamReader(System.in));
String temp1= bis.readLine();

BufferedReader bis1=null;

bis1=new BufferedReader(new InputStreamReader(System.in));
int temp2= bis1.read()-'0';
// System.out.print( temp2);

System.out.println(" "+j.fun(temp1,temp2));

}
}
第3个回答  2011-03-13
字符编码问题
import java.util.Scanner;
public class UseScannerCharSet {
public static void main(String [] args){
System.out.println();
System.out.println(functionName());
}
public static String functionName(){
String result;
int n;
//FileReader fin=new FileReader("test.txt");
//Scanner reader=new Scanner(fin);
//读取文件用上面的,读取控制台输入用下面的,其他自己建流
Scanner reader=new Scanner(System.in,"gb2312");
//乱码的根本原因是字符集问题
//根据控制台编码使用gb2312或utf8或big5等汉字编码,一般就是gb2312
result=reader.next();
n=reader.nextInt();
return result.substring(0, n);
}
}
/*测试数据
我123 3
我123汉456 5
*/追问

不对

追答

贴下操作系统及语言,jre版本,IDE环境和错误输出吧

追问

截取的字符串不对

...函数,输入为一个字符串和字节数,输出为按字节截取的字
C++编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字  我来答 分享 微信扫一扫 网络繁忙请稍后重试 新浪微博 QQ空间 举报 浏览25 次 可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。 字符串 函数 c++ 截取 字节 搜索资料 本地图片 图片链接...

求java考题,笔试题
JAVA类实现序例化的方法是实现java.io.Serializable接口Collection框架中实现比较要实现Comparable 接口和 Comparator 接口16. 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6,应该输出为"我ABC"而...

编写一个java程序,完成以下功能: 1) 声名为s的string对象,并使它的内容...
System.out.println("字符串第一个字符:"+str.charAt(0));System.out.println("字符串最后一个字符:"+str.charAt(str.length()-1));System.out.println("第一个单词:"+s.trim().substring(0, s.trim().indexOf(" ")));System.out.println("将'C'替换为'B':"+s.replace('C', ...

请教一段截取字符串的程序
byte类型的数据可以转换为数字buf[i]<0这个的意思实际就是把每个字节和0相比较,在gbk编码中,英文字符和符号是有一个大于0的整数对应,那么如果这个字节是汉子的一部分则不再英文字符这些数字之中,判断小于0则表示这个字节的内容非英文字符,即汉字的一部分。

帮忙写一个CMD批处理
② 在 set 语句中:和~同时使用时,: 起到截取字符串的功能。假设 set str=abcde,那么,set var=%str:~0,1% 表示截取字符串abcde的第一个字符;和=同时使用时,起到替换字符串的功能。假设:set str=abc:de,那么,set var=%str:a=1% 则表示把字符串abc:de中的a替换为1,set var=%str...

面向Java开发人员的Scala指南: 构建计算器,第1 部分
从实现和设计的角度看 可以从构建一个基于字符串的解析器来着手构建某种可以 挑选每个字符并动态计算 的解析器 这的确极具诱惑力 但是这只适用于较简单的语言 而且其扩展性不是很好 如果语言的目标是实现简单的扩展性 那么在深入研究实现之前 让我们先花点时间想一想如何设计语言 根据那些基本的编译理论中最精华的...

什么是3DES对称加密算法?
API或算法本身不对数据进行处理,加密数据由加密双方约定填补算法。例如若对字符串数据进行加解密,可以补充\\0或者空格,然后trim PKCS5Padding 加密前:数据字节长度对8取余,余数为m,若m>0,则补足8-m个字节,字节数值为8-m,即差几个字节就补几个字节,字节数值即为补充的字节数,若为0则补充8...

java截取字符串时如何判断是不是中文
SplitByte=bytes;System.out.println("The String is:′"+SplitStr+"′;SplitBytes="+SplitByte);}public void SplitIt() { int loopCount;loopCount=(SplitStr.length()%SplitByte==0)?(SplitStr.length()\/SplitByte):(SplitStr.length()\/SplitByte+1);System.out.println("Will Split into ...

Python小白(九):字符串 1
计算字符串长度使用内置函数len(),返回字符个数。如len("hello")返回5。要计算UTF-8编码下的字节数,使用encode()方法,GBK\/GB2312编码使用encode('gbk')。截取字符串可以通过切片实现,语法为string[start:end:step],字符串索引从0开始,每个字符占一个位置。字符串分割使用split()方法,返回字符串...

什么是 Java 虚拟机?
Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。 2.谁需要了解Java虚拟机 Java虚拟机是Java语言底层实现的基础,对Java语言感兴趣...

相似回答