第一题:拼音转数字
输入是一个只包含拼音的字符串,请输出对应的数字序列。转换关系如下:
描述:      拼音        yi  er  san  si  wu  liu  qi  ba  jiu
      阿拉伯数字        1   2   3      4   5    6    7   8   9
输入字符只包含小写字母,所有字符都可以正好匹配

运行时间限制:无限制
内存限制:       无限制
输入:              一行字符串,长度小于1000
输出:              一行字符(数字)串
样例输入:       yiersansi
样例输出:       1234

总结几个用法:

1、区别char、String、Vector<>str; 字符‘’ 字符串“” 向量<>中是向量存的数据类型(动态存储)

2、最后打印的内容只能是char、String格式的,所以return的时候加上这句str.toString()表示将向量转换成String型;还有str.toArray转换成数组;

package t0806;

import java.util.Vector;

public class test2 {
public static void main(String[] args){
String str = "yiersansi";
String str2 = solve(str);
System.out.println("样本输出为:"+str2); }
public static String solve(String str2){
Vector<String> str3=new Vector<String>(); //new一个空的字符串型的向量
char ch[]=str2.toCharArray(); //将字符串转换成字符数组
int length=str2.length();
int k=0;
while(true){ // 习惯使用这种while。break放在内部,而不是放在括号里面,除非你非常清楚它的运行机制
if (ch[k]=='y'&&ch[k+1]=='i')
{str3.addElement("1");k=k+2;}
else if(ch[k]=='e'&&ch[k+1]=='r')
{str3.addElement("2");k=k+2;}
else if(ch[k]=='s')
{
if (ch[k+1]=='a'&&ch[k+2]=='n')
{str3.addElement("3");k=k+3;}
else if(ch[k+1]=='i')
{str3.addElement("4");k=k+2;}
}
else if(ch[k]=='w'&&ch[k+1]=='u')
{str3.addElement("5");k=k+2;}
else if(ch[k]=='l'&&ch[k+1]=='i'&&ch[k+2]=='u')
{str3.addElement("6");k=k+3;}
else if(ch[k]=='q'&&ch[k+1]=='i')
{str3.addElement("7");k=k+2;}
else if(ch[k]=='b'&&ch[k+1]=='a')
{str3.addElement("8");k=k+2;}
else if(ch[k]=='j'&&ch[k+1]=='i'&&ch[k+2]=='u')
{str3.addElement("9");k=k+3;} if (k>=length) //一旦超过
break;
}
return str3.toString(); // 将向量转成String形式的
} }

版本二:

增加手动输入字符串,enter按键输出结果:

package t0806;

import java.util.Scanner;
import java.util.Vector; public class test2 {
static String ss;
public static void main(String[] args){
System.out.println("请输入字符串:");
Scanner scStr = new Scanner(System.in);
ss = scStr.next(); //String str = "yiersansi";
String str2 = solve(ss);
System.out.println("样本输出为:"+str2); }
public static String solve(String str2){
Vector<String> str3=new Vector<String>();
char ch[]=str2.toCharArray();
int length=str2.length();
int k=0;
while(true){
if (ch[k]=='y'&&ch[k+1]=='i')
{str3.addElement("1");k=k+2;}
else if(ch[k]=='e'&&ch[k+1]=='r')
{str3.addElement("2");k=k+2;}
else if(ch[k]=='s')
{
if (ch[k+1]=='a'&&ch[k+2]=='n')
{str3.addElement("3");k=k+3;}
else if(ch[k+1]=='i')
{str3.addElement("4");k=k+2;}
}
else if(ch[k]=='w'&&ch[k+1]=='u')
{str3.addElement("5");k=k+2;}
else if(ch[k]=='l'&&ch[k+1]=='i'&&ch[k+2]=='u')
{str3.addElement("6");k=k+3;}
else if(ch[k]=='q'&&ch[k+1]=='i')
{str3.addElement("7");k=k+2;}
else if(ch[k]=='b'&&ch[k+1]=='a')
{str3.addElement("8");k=k+2;}
else if(ch[k]=='j'&&ch[k+1]=='i'&&ch[k+2]=='u')
{str3.addElement("9");k=k+3;} if (k>=length) //一旦超过
break;
}
return str3.toString();
} }

华为机试_字符串识别_Vector的使用;的更多相关文章

  1. 华为机试001:字符串最后一个单词的长度(华为OJ001)

    华为机试 字符串最后一个单词的长度 计算字符串最后一个单词的长度,单词以空格隔开. 提交网址: http://www.nowcoder.com/practice/8c949ea5f36f422594b ...

  2. 2014华为机试西安地区B组试题

    2014华为机试西安地区B组试题 题目一.亮着点灯的盏数 一条长廊里依次装有n(1≤n≤65535)盏电灯,从头到尾编号1.2.3.-n-1.n.每盏电灯由一个拉线开关控制.開始,电灯所有关着. 有n ...

  3. 2014华为机试西安地区A组试题

    2014华为机试西安地区A组试题 题目一.分苹果 M个同样苹果放到N个同样篮子里有多少种放法,同意有篮子不放. 1<=M<=10.1<=N<=10 比如5个苹果三个篮子,3,1 ...

  4. 华为机试ACM(字符组合问题)

    今晚做了华为的机试,3道ACM题,最后一道是实现从M个不同字符中任取N个字符的所有组合. eg: input:ABC 2 output:AB AC BC 第一个输入为字符串,第二个输入为组合的字符个数 ...

  5. 输入一个字符串,去掉重复的字符,并按ASCII值排序-华为机试

    import java.util.Scanner; //输入字符串,去掉重复的字符,并按ASSIC码值排序 public class quChong { public static void main ...

  6. (华为机试大备战)java。多了解了解最常用的那个类库的方法对处理字符串的方法

    1.常考字符串处理:对处理字符串的方法. (a)统计字符串中特定字符的个数. 2.郭靖考了一道二维数组?? 3.多了解了解最常用的那个类库的方法.

  7. 华为机试正式版(西安c/c++/java),今天下午去机试的题目,新奇出炉了!

    下面题目都是回顾的.题目都非常easy, 大家有些基础就能够參加!(语言能够是c/c++.也能够是java的) 题目一(60分): 字符串操作. 将小写转换成大写, 将大写转化为小写, 数字的不做转换 ...

  8. 华为机试 可怕的N阶乘

    题目标题: 计算阶乘n!是一件可怕的事情,因为当n并不是很大时,n!将是一个很大的值.例如13! = 6227020800,已经超过了我们常用的unsigned int类型的取值范围.请设计一个程序, ...

  9. 2015华为机试——数字基root

    题目描写叙述: 求整数的Root:给定正整数,求每位数字之和;假设和不是一位数,则反复; 输入:输入随意一个或多个整数 输出:输出各位数字之和,直到和为个位数为止(输入异常,则返回-1),多行,每行相 ...

随机推荐

  1. 一张图读懂Java多线程

    1.带着疑问看图 1)竞争对象的锁和竞争CPU资源以及竞争被唤醒 2)何种情况下获取到了锁,何种情况下会释放锁 2.还是那张图 3.详细图解 1)Thread t = new Thread(),初始化 ...

  2. Oracle-数据实现竖排打印

    --存放重证评分的数据表create table ZZPFapache2(  ZZ_datetime DATE,   --时间  ZZ_zongfen INTEGER, --总分  ZZ_shiwan ...

  3. [iOS基础控件 - 3.5] NSBundle, UIImageView和UIButton的区别, 模拟器和文档

    1.NSBundle1> 一个NSBundle代表一个文件夹,利用NSBundle能访问对应的文件夹2> 利用mainBundle就可以访问软件资源包中的任何资源3> 模拟器应用程序 ...

  4. nginx+tomcat+redis负载均衡及session共享

    概述 本文档是用来详细描述 nginx+tomcat+redis负载均衡实现session共享 所需软件及下载地址 软件名称 下载地址 功能说明 Nginx-v1.6.0 http://nginx.o ...

  5. 【C++深入浅出】设计模式学习之观察者模式

    前言 前两天学习了weak_ptr以后还是不甚明了,一则需要实际应用去锤炼,二来就是不懂观察者模式. 正文 观察者模式又叫发布-订阅模式,定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对 ...

  6. 使用 Windows 窗体 TextBox 控件创建密码文本框

    密码框是一种 Windows 窗体文本框,它在用户键入字符串时显示占位符. 创建密码文本框 将 TextBox 控件的 PasswordChar 属性设置为某个特定字符. PasswordChar 属 ...

  7. 基于新浪sae使用php生成图片发布图文微博

    1.生成图片的代码: <?php header ("Content-type: image/png"); mb_internal_encoding("UTF-8&q ...

  8. 使用air进行移动app开发常见功能和问题(二)

    1.  Air如何判断android.ios 平台网络连接状态? Android,使用as3原生api: if(NetworkInfo.isSupported)//只有android支持 Networ ...

  9. Gradle的安装与配置

    Gradle的下载地址:http://gradle.org/gradle-download/ Tips:要先安装JDK并配置其环境变量. 下载完成后将里面的文件解压出来,如下图所示: 添加一个名称为G ...

  10. Helpers Overview

    Helpers Overview Helpers are classes that are not part of the core system but can greatly improve it ...