您的位置:首页 > 编程语言 > Java开发

2017年,华为机试题目 《字符串按指定重新分配》 --Java实现

2016-10-10 11:27 330 查看
一,问题描述

1,输入M个字符串,按指定长度N拆分每个字符串,输出新的字符串,长度不是N的整数倍的字符串请在后面补数字0

2,格式如下:

输入:输入整数M,N,以逗号隔开

每行一个字符串,共M个字符串,每行字符串小于50个字符

输出:按指定长度N拆分字符串,输出拆分后的字符串

示例:

输入:

2,8

abc

123456789


输出:

abc00000

12345678

90000000

二,AC了的程序(用JAVA实现的)

import java.util.*;
public class Test2{
public static void main(String []args)
{
Scanner scan=new Scanner(System.in);
int M,N;
String []str1;
String []str2;
String s;
s=scan.nextLine();
str1=s.split(",");  //去掉逗号
M=Integer.valueOf(str1[0]);  //M表示字符串个数
N=Integer.valueOf(str1[1]); //N表示指定长度
str2=new String[M];

for(int i=0;i<M;i++)
{
str2[i]=scan.nextLine();  //输入字符串
}
for(int i=0;i<M;i++)
{
if(str2[i].length()<N)
{
StringBuffer sb=new StringBuffer();
sb.append(str2[i]);
int n=N-str2[i].length();
for(int j=0;j<n;j++)
{
sb.append(0);//长度不足N的在后面添加0
}

System.out.println(sb.toString());
}
else
{
int a=str2[i].length()/N;  //取整数
int b=str2[i].length()%N;  //取余数
int c=N-b;

if(b==0)//当余数为0时
{
for (int j = 0; j < a; j++) {
StringBuffer sb=new StringBuffer();
sb.append(str2[i].substring(j*N,(j+1)*N));
System.out.println(sb.toString());
}
}
else  //当余数不为0时
{
for (int j = 0; j < a; j++) {
StringBuffer sb=new StringBuffer();
sb.append(str2[i].substring(j*N,(j+1)*N));
System.out.println(sb.toString());
}
StringBuffer sb=new StringBuffer();
sb.append(str2[i].substring(a*N,str2[i].length()));
for(int j=0;j<c;j++)
{
sb.append(0);
}
System.out.println(sb.toString());
}
}
}
}
}


运行结果图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  华为