第一题:拼音转数字
输入是一个只包含拼音的字符串,请输出对应的数字序列。转换关系如下:
描述:      拼音        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. Android实例-OrientationSensor方向传感器(XE8+小米2)

    相关资料: <修复 XE8 for Android 方向传感器 headingX,Y,Z 不会动的问题>:http://www.cnblogs.com/onechen/p/4497282. ...

  2. [iOS基础控件 - 3.4] 汤姆猫

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css); @import url(/ ...

  3. 网站WAF的检测

    [wafw00f]: 项目地址: https://github.com/sandrogauci/wafw00f WAFW00F是识别和指纹Web应用防火墙(WAF)产品,其工作原理是首先通过发送一个正 ...

  4. <property name="current_session_context_class">thread</property> 属性

    <property name="current_session_context_class">thread</property>这个属性的作用:这样配置是本 ...

  5. Cocos2d-x——CocosBuilder官方帮助文档翻译1 使用自定义类

    原创:请注明转载! 在Cocos2d-x中使用CocosBuilder 使用自定义类 CocosBuilder的使用方法是通过自定义类.在CocosBuilder中选中一个对象并在属性栏中输入自定义类 ...

  6. ios常用动画

    // // CoreAnimationEffect.h // CoreAnimationEffect // // Created by VincentXue on 13-1-19. // Copyri ...

  7. 【M19】了解临时对象的来源

    1.首先,确认什么是临时对象.在swap方法中,建立一个对象temp,程序员往往把temp称为临时对象.实际上,temp是个局部对象.C++中所谓的临时对象是不可见的,产生一个non-heap对象,并 ...

  8. Java数据抓取经验【转载】

    本人担任职友集的java工程师五年,其中抓取数据占主要的一部分,抓取的信息只要有两部分,职位和简历,其中职位的抓取量为日均插入量为30万,更新量 为60万,抓取全国300多个人才网站.职友集(现在改名 ...

  9. JNI总结(一)

    JNI 是 Java平台中的一个强大特性.应用程序能够通过 JNI把 C/C++代码集成进 Java程序中.通过 JNI.开发人员在利用 Java平台强大功能的同一时候,又不必放弃对原有代码的投资.由 ...

  10. jquery处理单击和双击事件

    今天做div点击时,需要用到同一div的单击和双击事件,出现问题如下 例子: Html <body> <div id="div_1">单击双击我</d ...