用java设计一个程序算法,实现下列功能:输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证
用java设计一个程序算法,实现下列功能:输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC...
用java设计一个程序算法,实现下列功能:输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”最好标明注释,黏贴的家伙就不用进来了
展开
4个回答
展开全部
已经测试通过
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);
}
}
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);
}
}
展开全部
楼主不会是去的 广州五福堂 药店面试的吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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));
}
}
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));
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
字符编码问题
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
*/
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环境和错误输出吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询