Java-------华为机试-------字符串分隔
2017-04-21 09:45
190 查看
题目描述
•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
[b]输入描述:[/b]
连续输入字符串(输入2次,每个字符串长度小于100)
[b]输出描述:[/b]
输出到长度为8的新字符串数组
[b]输入例子:[/b]
abc 123456789
[b]输出例子:[/b]
abc00000 12345678 90000000
解法1:
最终自己的AC代码是
import java.util.Scanner; /** * Created by user on 2017/4/18. */ public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); //多组测试实例,所以用hasNext判断 while (in.hasNext()) { String str= in.nextLine(); int len=str.length(); //len位数组长度 int m=len/8; //最少可分割的组数 /* 下面嵌套循环,内层作用位分割为8个一组,外层循环确定组数 , “if”考虑特殊情况 */ for(int i=0; i<= m;i++){ if(i*8==len){ //是否已经分割完毕(其实就是特殊情况:len=8,16,24……) break; //是的话break跳出循环 } //下面输出,八个一组 for(int j=0; j<8; j++){ if(i*8+j<len)//判断是否字符串还没输出完 System.out.print(str.charAt(i*8+j)); //没输出完的字符串余下部分继续输出 else{ System.out.print("0"); //字符串已输出完但是这个子字符串输出位数不足8位的补“0” } } System.out.println();//换行。 } } } }
解法二:
摘自http://www.cnblogs.com/qiaoyanlin/p/6607124.html ,
不过他没写注释,我在这里加了几句自己的注释
import java.util.Scanner; /** * Created by user on 2017/4/18. */ import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){ String s = new String(sc.nextLine()); if(s.length()%8 !=0 ) //如果不是八的倍数,字符串直接加八个“0”, s = s + "00000000"; // 明显字符串只要八个一组输出就可以啦; // 赞一个! while(s.length()>=8){ System.out.println(s.substring(0, 8)); //输出字符串“s”的前八个的子数组 s = s.substring(8); //s扔掉前8位,不懂的可以看我下面的substring()的解释 } } } }
注释:substring()有两种用法
str=str.substring(int beginIndex);截取掉str从首字母起长度为beginIndex的字符串,将剩余字符串赋值给str;
简单说,就是
System.out.println( s.substring(8));
,只输出从下标为8的以后的子字符串,前八位不输出
str=str.substring(int beginIndex,int endIndex);
截取str中从beginIndex开始至endIndex结束时的字符串,并将其赋值给str;
System.out.println(s.substring(0, 8));
只输出从0-8的子字符串
其他的解法百度一大堆,但是太长太啰嗦。。。所以就不引用了。
相关文章推荐
- Java - 华为机试训练 - 字符串分隔
- Java - 华为机试训练 - 【中级】单词倒排(正则表达式切割字符串)
- 【华为机试】字符串分隔
- Java - 华为机试训练 - 删除字符串中出现次数最少的字符
- 华为机试 字符串分隔
- 牛客网–华为机试在线训练4:字符串分隔
- 华为机试(字符串最后一个单词长度,计算字符串的个数,明明的随机数) Java实现
- 华为机试——字符串分隔
- java 字符串忽略大小写排序 (华为机试)
- 【华为机试】字符串分隔
- 华为机试(字符串间隔,进制转换,质数因子)Java
- 牛客网几道编程题(二)之华为机试在线训练:计算字符个数、字符串最后一个单词的长度、分隔字符串
- 2017年,华为机试题目 《字符串按指定重新分配》 --Java实现
- Java - 华为机试训练 - 字符串反转
- (华为机试大备战)java。多了解了解最常用的那个类库的方法对处理字符串的方法
- Java - 华为机试训练 - 字符串最后一个单词的长度
- 华为机试----字符串分隔
- 华为机试-字符串中最大最小数之和
- 华为机试-字符串的过滤
- 华为机试-字符串的压缩