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

题目描述:

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

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

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

思路:

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

注意点:

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

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

 1 import java.util.Scanner;
 2
 3 /**
 4  * 连续输入字符串,请按长度为8拆分每个字符创 后输出到新的字符串数组;
 5  * 长度不是8整数倍的字符串请在后面补数字0,空字符串不处理
 6  * 输入
 7  *         连续输入字符串(输入两次,每个字符长长度小于100)
 8  * 输出
 9  *         输出到长度为8,的新字符串数组
10  * 样例输入
11  *         abc
12  *         123456789
13  * 样例输出
14  *         abc00000
15  *         12345678
16  *         90000000
17  *
18  */
19 public class StringSplit {
20
21     public static void main(String[] args) {
22         //读取输入字符串
23         String [] strs = new String [2] ;
24         Scanner cin = new Scanner(System.in) ;
25         strs[0] = cin.nextLine() ;
26         strs[1] = cin.nextLine() ;
27         cin.close();
28
29         String temp ;
30         int sub = 0 ;
31
32         //循环处理两个字符串
33         for(int i = 0 ; i < 2 ; i++ ){
34             //判断是否为空串(字符串首尾去除空格后判断长度是否为0),如果为空串则不处理
35             if(strs[i].trim().isEmpty()){
36                 continue ;
37             }
38             temp = strs[i] ;
39             //每8个一组进行处理
40             for(int j = 0 ; j < temp.length() ; j = j + 8){
41                 //判断 j 之后是否还有8个字符
42                 if(j+8 < temp.length()){
43                     // j 之后的长度大于8
44                     System.out.println(temp.substring(j,j+8)) ;
45                 }else if(j+8 == temp.length()){
46                     // j 之后的长度等于8,即刚好是最后一个组,无需加0
47                     System.out.println(temp.substring(j)) ;
48                 }else{
49                     // j 之后的长度小于8,后面需要加(j+8-temp.length())个 0
50                     System.out.print(temp.substring(j)) ;
51                     sub = j+8 - temp.length() ;
52                     while(sub != 0){
53                         System.out.print( "0") ;
54                         sub-- ;
55                     }
56                     System.out.println();
57                 }
58             }
59         }
60
61     }
62
63 }

时间: 2024-10-27 12:25:11

华为OJ平台——字符串分隔的相关文章

华为OJ平台——字符串通配符

题目描述: 在计算机中,通配符一种特殊语法,广泛应用于文件搜索.数据库.正则表达式等领域.现要求各位实现字符串通配符的算法.要求:实现如下2个通配符: *:匹配0个或以上的字符(字符由英文字母和数字0-9组成,不区分大小写.下同)(不包含. , 等特殊字符) ?:匹配1个字符 输入 通配符表达式: 一组字符串. 输出 返回匹配的结果,正确输出true,错误输出false 思路: 分三种情况: (1)无通配符的情况:对应的字符要完全相等,否则匹配失败,输出false (2)通配符为?的情况:对应的

华为OJ:2290 字符串最后一个单词的长度

用JAVA就很简单,只要用spilt函数,再输出最后一个字符串. 题意是要求你先自己写分隔好字符串这样子.有个比较坑的地方就是测试用例应该有个全为空的,要注意. import java.util.Scanner; public class Main { public static void main(String args[]){ Scanner input=new Scanner(System.in); String s=input.nextLine(); String ss[]=s.spli

华为OJ平台——矩阵乘法

题目描述: 如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C. 输入: 1.第一个矩阵的行数 2.第一个矩阵的列数(也是第二个矩阵的行数) 3.第二个矩阵的列数 4.第一个矩阵的值 5.第二个矩阵的值 输出: 输出两个矩阵相乘的结果 样例输入 2 2 2 3 8 8 0 9 0 18 9 样例输出 171 72 72 0 思路: 题目意思很简单,只是实现两个矩阵乘法功能,要注意的一点是输出的格式. OJ平台中对输出的格式非常严格,经过多次尝试,验证此

华为OJ平台试题 —— 数组:字符串反转

字符串反转 代码: /* * 接受一个字符串,然后输出该字符串反转后的字符串. */ #include <stdio.h> #include <string.h> /* * 字符串反转函数 */ char *revstr(char *str, int len) { char *start = str; char *end = str + len - 1; char ch; if (str != NULL) { while (start < end) { ch = *start

华为OJ平台——统计字符串中的大写字母

题目描述: 统计字符串中的大写字母的个数 输入: 一行字符串 输出: 字符串中大写字母的个数(当空串时输出0) 思路: 这一题很简单,直接判断字符串中的每一个字符即可,唯一要注意的一点是输入的字符串可能包含空格,所以读入的时候要用nextLine()方法 1 import java.util.Scanner; 2 3 public class CountCaptial { 4 5 public static void main(String[] args) { 6 Scanner cin = n

【华为OJ平台练习题】统计一段字符串中含有空格、英文、数字的个数

//统计一段字符串中含有空格.英文.数字的个数 #include <iostream> using namespace std; void processString(char* s) { int n = strlen(s); int kg=0; int shuzi=0; int yingwen=0; if(n>0) { for(int a=0;a<n;a++) { if(s[a]==' ') kg++; if(s[a]<='9'&&s[a]>='0')

华为OJ平台试题 —— 字符串:名字的漂亮度

<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);">1.名字的漂亮度</span> 代码: <pre name="code" class="cpp"> #include<stdio.h> /* * 对数组a 进行排序 */ voi

华为OJ平台试题 ——字符串:输出数组中重复的数组

<pre name="code" class="cpp">/* * 题目:输出数组中重复出现的数组(0-9) * * 输入:输入一串数字,中间以逗号隔开,如3,2,2,3,5,6,7,8,9 * 输出:输出数组中重复出现的数字(数字间以空格隔开),输出顺序按原数组中的先后顺序,输出3,2 */ #include<stdio.h> #include<string.h> #define N 256 /* * 定义一个结构体:数字和数字

华为oj 之 整数分隔

/* (1)如果是奇数: dp[i] = dp[i-1] 相当于在(i-1)每个分隔的前面添了一个1 (2)如果是偶数: dp[i] = dp[i-1] + dp[i/2] 相当于在(i-1)每个分隔的前面添了一个1,同时(i/2)的每个分隔乘以2 eg: 2: 1 1 2 3: 1 1 1 1 2 4: 1 1 1 1 1 1 2 2 2 4 */ 1 #include <iostream> 2 #include <fstream> 3 #include <sstream&