文档章节

串的处理

旺仔没馒头
 旺仔没馒头
发布于 2017/09/03 16:16
字数 523
阅读 3
收藏 0

串的处理

题目描述:

串的处理 在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用户输入的串进行处理。具体规则如下:

  1. 把每个单词的首字母变为大写。
  2. 把数字与字母之间用下划线字符(_)分开,使得更清晰
  3. 把单词中间有多个空格的调整为1个空格。
    例如:
    用户输入:
    you and me what cpp2005program
    则程序输出:
    You And Me What Cpp_2005_program
    用户输入:
    this is a 99cat
    则程序输出:
    This Is A 99_cat
    我们假设:用户输入的串中只有小写字母,空格和数字,不含其它的字母或符号。每个单词间由1个或多个空格分隔。
    假设用户输入的串长度不超过200个字符。

思路:这个题目的难点在于第二个要求,应当考虑多种情况,如:字母数字、数字字母、空格数字、数字空格。当写清条件后,题目自然就出来了。

public class T5 {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String str = in.nextLine();
		String s = trans(str);
		String s2 = changeBigWrite(s);
		String s3 = add(s2);
		System.out.println(s3);
	}

	private static String add(String s2) {
		// TODO Auto-generated method stub
		char[] array = s2.toCharArray();
		StringBuilder sb = new StringBuilder();
		for(int i = 0 ; i < array.length ; i++){
			if((array[i]>='a'&&array[i]<='z')||(array[i]>='A'&&array[i]<='Z')){
				if(i+1<array.length&&array[i+1]>='0'&&array[i+1]<='9'){
					sb.append(array[i]+"_");
				}else{
					sb.append(array[i]);
				}
			}else{
				if(array[i]==' '){
					sb.append(" ");
				}else{
					if(i+1<array.length&&(array[i+1]>='a'&&array[i+1]<='z')||(array[i+1]>='A'&&array[i+1]<='Z')){
						sb.append(array[i]+"_");
					}else{
						sb.append(array[i]);
					}
				}
			}
		}
		return sb.toString().trim();
	}

	private static String changeBigWrite(String s) {
		// TODO Auto-generated method stub
		String[] split = s.split(" ");
		StringBuilder sb = new StringBuilder();
		for(String t :split){
			char fir = t.charAt(0);
			if(fir>='a'&&fir<='z'){
				fir = (char) (fir-32);
			}
			sb.append(fir+t.substring(1)+" ");
		}
		return sb.toString().trim();
	}

	private static String trans(String str) {
		// TODO Auto-generated method stub
		String[] split = str.split(" ");
		StringBuilder sb = new StringBuilder();
		for(String t : split){
			if(t!=""){
				sb.append(t+" ");
			}
		}
		return sb.toString().trim();
	}
}

© 著作权归作者所有

共有 人打赏支持
旺仔没馒头
粉丝 2
博文 17
码字总数 12986
作品 0
济南
程序员
MySQL函数简介

1、常用的文本处理函数 LEFT()(或使用子字符串函数) 返回串左边的字符 LENGTH()(也使用DATALENGTH()或LEN())返回串的长度 LOWER()(Access使用LCASE()) 将串转换为小写 LTRIM() 去掉串左...

小杰滔滔
2016/08/01
29
0
[转]关于PHP 的单引号和双引号

" "双引号里面的字段会经过编译器解释,然后再当作HTML代码输出。 ' '单引号里面的不进行解释,直接输出。 例如: $abc='my name is tome'; echo $abc //结果是:my name is tom echo '$abc'...

JunDer
2012/11/05
0
0
java转JSON串的几种方式 

java转JSON串的几种方式 转载 https://blog.csdn.net/fullbug/article/details/78629033 昨天在与对端系统调接口的时候,对端系统对我们传过去的json串老是处理不了,后来查原因是应为我们传...

DemonsI
09/05
0
0
小蚂蚁学习数据结构(15)——串的认识

概念: 串(字符串):是由0个或多个字符组成的有限序列。 由双引号括起来 如: char str[] = "abcd"; 串相等的条件: 只有当两个串的长度相等,并且各个对应位置的字符都相等时才相等。 串的...

嗜学如命的小蚂蚁
2016/01/15
83
2
自己写一个编译器:第三天:词法分析

// 请移步《从零开发一个JVM语言》系列。// 由于这篇文章有人收藏就不删除了。。 看下面这个表达式 它表达了什么呢? 人在观察一个表达式的过程中,实际上已经对它进行了词法分析。 没有接受...

wkgcass
2016/02/14
94
0

没有更多内容

加载失败,请刷新页面

加载更多

OSX | SafariBookmarksSyncAgent意外退出解决方法

1. 启动系统, 按住⌘-R不松手2. 在实用工具(Utilities)下打开终端,输入csrutil disable, 然后回车; 你就看到提示系统完整性保护(SIP: System Integrity Protection)已禁用3. 输入reboot回车...

云迹
今天
4
0
面向对象类之间的关系

面向对象类之间的关系:is-a、has-a、use-a is-a关系也叫继承或泛化,比如大雁和鸟类之间的关系就是继承。 has-a关系称为关联关系,例如企鹅在气候寒冷的地方生活,“企鹅”和“气候”就是关...

gackey
今天
4
0
读书(附电子书)|小狗钱钱之白色的拉布拉多

关注公众号,在公众号中回复“小狗钱钱”可免费获得电子书。 一、背景 之前写了一篇文章 《小狗钱钱》 理财小白应该读的一本书,那时候我才看那本书,现在看了一大半了,发现这本书确实不错,...

tiankonguse
今天
4
0
Permissions 0777 for ‘***’ are too open

异常显示: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ......

李玉长
今天
5
0
区块链10年了,还未落地,它失败了吗?

导读 几乎每个人,甚至是对通证持怀疑态度的人,都对区块链的技术有积极的看法,因为它有可能改变世界。然而,区块链技术问世已经10年了,我们仍然没有真正的用上区块链技术。 几乎每个人,甚...

问题终结者
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部