文档章节

串的处理

旺仔没馒头
 旺仔没馒头
发布于 2017/09/03 16:16
字数 523
阅读 3
收藏 0
点赞 0
评论 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
博文 15
码字总数 10924
作品 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
小蚂蚁学习数据结构(15)——串的认识

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

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

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

wkgcass
2016/02/14
94
0
snort配置文件中的IP解析

简介 结合前面对snort中解析IP的细节处理,从整体上分析snort读取规则是如何管理解析到的IP,以及是如何通过直接复制副本来提高效率的. 预备资源 前面对处理细节的分析 http://my.oschina.ne...

面码
2014/07/11
0
0
Oracle解析复杂json的方法

当前在Oracle数据库(11G之前的版本)解析json没有可以直接使用的系统方法,网上流传的PLSQL脚本大多也只可以解析结构较单一的json串,对于结构复杂的json串还无法解析。如此一来导致即便可以在...

xmgdc
2017/07/03
0
0
springmvc - json的数据交互

一、为什么使用 json json 数据格式在接口调用中、html页面中较常用,json数据结构简单,解析方便。比如,webservice接口,传输json数据。 二、springmvc 中进行json交互 1.请求的是json串、输出...

中柠檬
2016/11/21
28
0
PHP获取HTML文件名表单数据等

1、PHP获取表单各项数据 --- 与表单提交的方式有关 GET方式,格式:$GET[“formelement”] POST方式,格式:$POST[“formelement”] REQUEST方式,格式:$_REQUEST[“formelement”] 2、表单...

wqli
2014/04/12
0
0
lintcode最长回文子串(Manacher算法)

题目来自lintcode, 链接:http://www.lintcode.com/zh-cn/problem/longest-palindromic-substring/ v最长回文子串 给出一个字符串(假设长度最长为1000),求出它的最长回文子串,你可以假定...

余二五
2017/11/16
0
0
数据结构与算法JavaScript (四) 串(BF)

串是由零个或多个字符组成的有限序列,又叫做字符串 串的逻辑结构和线性表很相似的,不同的是串针对是是字符集,所以在操作上与线性表还是有很大区别的。线性表更关注的是单个元素的操作CUR...

文艺小青年
2017/06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

对基于深度神经网络的Auto Encoder用于异常检测的一些思考

一、前言 现实中,大部分数据都是无标签的,人和动物多数情况下都是通过无监督学习获取概念,故而无监督学习拥有广阔的业务场景。举几个场景:网络流量是正常流量还是攻击流量、视频中的人的...

冷血狂魔
17分钟前
0
0
并发设计之A系统调用B系统

A-->B A在发送请求之前,用乐观锁,减少对B的重复调用,这样一定程度上是幂等性。 比如A系统支付功能,要调用B系统进行支付操作,但是前端对"支付"按钮不进行控制,即用户会不断多次点击支付...

汉斯-冯-拉特
38分钟前
0
0
HTTP协议通信原理

了解HTTP HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务。 HTTP使用...

寰宇01
今天
0
0
【Java动态性】之反射机制

一、Java反射机制简介

谢余峰
今天
1
0
Centos 6.X 部署环境搭建

1.Linux学习笔记CentOS 6.5(一)--CentOS 6.5安装过程

IT追寻者
今天
0
0
博客即同步至腾讯云+社区声明

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=8vy9bsmadbko...

xiaoge2016
今天
1
0
大数据教程(3.1):Linux系统搭建网络YUM源服务器

博主在前面的2.5章节讲述了linux系统本地YUM服务器的搭建和httpd轻量级静态网站服务器的安装,本节博主将为大家分享内网环境中搭建自己的网络YUM服务器的全过程。如果大家对本地YUM服务器还不...

em_aaron
今天
1
0
蚂蚁技术专家:一篇文章带你学习分布式事务

小蚂蚁说: 分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在这几年越来越火的微服务架构中,几乎可以说是无法避免,本文就围绕分布式事务...

Java大蜗牛
今天
1
0
新的Steam应用将拓展服务项目

导读 未来几周,Steam将推出两个免费的应用程序Steam Link和Steam Video。这两个应用程序都旨在拓展Steam平台的业务和便利性。 即将开放的Steam Link应用程序最先提供了Android测试版,它将允...

问题终结者
今天
0
0
golang 第三方包的使用总结

golang 第三方包的安装的方法: 1. go get 安装 $ go get github.com/gin-gonic/gin 注意:执行go get 命令需要先安装git命令,并配置git全局变量。 2. 源码包安装 由于国内网络问题,很多时...

科陆李明
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部