您的位置:首页 > 其它

华为OJ平台——字符串分隔

2016-06-18 17:12 218 查看
题目描述:

连续输入字符串,请按长度为8拆分每个字符创 后输出到新的字符串数组;

长度不是8整数倍的字符串请在后面补数字0,空字符串不处理

输入
  连续输入字符串(输入两次,每个字符长长度小于100)
输出
  输出到长度为8,的新字符串数组
样例输入
  abc
  123456789
样例输出
  abc00000
  12345678
  90000000

思路:

都是直接处理,没有具体的方法而言

注意点:

华为的OJ平台的输入输出有点坑,好多次的程序都在这里出问题,在Eclipse上运行的结果没问题,然后在OJ上就是编译出错或者格式错误什么的

本题中输入是以换行符来表示一个字符串的输入结束,输出是以每8个一组为一行输出

import java.util.Scanner;

/**
* 连续输入字符串,请按长度为8拆分每个字符创 后输出到新的字符串数组;
* 长度不是8整数倍的字符串请在后面补数字0,空字符串不处理
* 输入
*         连续输入字符串(输入两次,每个字符长长度小于100)
* 输出
*         输出到长度为8,的新字符串数组
* 样例输入
*         abc
*         123456789
* 样例输出
*         abc00000
*         12345678
*         90000000
*
*/
public class StringSplit {

public static void main(String[] args) {
//读取输入字符串
String [] strs = new String [2] ;
Scanner cin = new Scanner(System.in) ;
strs[0] = cin.nextLine() ;
strs[1] = cin.nextLine() ;
cin.close();

String temp ;
int sub = 0 ;

//循环处理两个字符串
for(int i = 0 ; i < 2 ; i++ ){
//判断是否为空串(字符串首尾去除空格后判断长度是否为0),如果为空串则不处理
if(strs[i].trim().isEmpty()){
continue ;
}
temp = strs[i] ;
//每8个一组进行处理
for(int j = 0 ; j < temp.length() ; j = j + 8){
//判断 j 之后是否还有8个字符
if(j+8 < temp.length()){
// j 之后的长度大于8
System.out.println(temp.substring(j,j+8)) ;
}else if(j+8 == temp.length()){
// j 之后的长度等于8,即刚好是最后一个组,无需加0
System.out.println(temp.substring(j)) ;
}else{
// j 之后的长度小于8,后面需要加(j+8-temp.length())个 0
System.out.print(temp.substring(j)) ;
sub = j+8 - temp.length() ;
while(sub != 0){
System.out.print( "0") ;
sub-- ;
}
System.out.println();
}
}
}

}

}


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