第一题:拼音转数字
输入是一个只包含拼音的字符串,请输出对应的数字序列。转换关系如下:
描述:      拼音        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. 【转】logger

    一个使用java.util.logging.Logger进行log输出的示例代码如下: package com.sample; import java.io.File; import java.uti ...

  2. [二]Json-lib的用法

    1.Json字符串 PrintWriter out=response.getWriter(); // String resultJson="{\"name\":\&quo ...

  3. 多线程基础及实例(java)

    前言: 每个正在系统上运行的程序都是一个进程.每个进程包含一到多个线程.线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行.也可以把它理解为代码运行的上下文.所以线程基本上是轻量级的进程 ...

  4. 10个Visual Studio原生开发调试技巧

    10个Visual Studio原生开发调试技巧(1) 2013-05-29 13:30 佚名 开源中国 我要评论(1) 字号:T | T 以下的列表中你可以看到写原生开发的调试技巧(接着以前的文章来 ...

  5. HadoopDB:混合分布式系统

    HadoopDB 是一个 Mapreduce 和传统关系型数据库的结合方案,以充分利用 RDBMS 的性能和 Hadoop 的容错.分布特性.2009 年被 Yale 大学教授 Abadi 提出,继而 ...

  6. IE下载打印文件的时候,下载打印闪一下就没有了

    这是因为我们的浏览器没有将文件下载的自动提示设为启用.点击IE菜单栏中的“工具”—“Internet选项”-安全—可信站点—自定义级别 1,添加信任站点 打开IE浏览器,输入需要下载文件的地址 选择[ ...

  7. 46 关于Linux的I/O重定向

    I/O重定向是一个过程,这个过程捕捉一个文件.或命令.或程序.或脚本.甚至代码块(code block)的输出,然后把捕捉到的输出,作为输入发送给另外一个文件.或命令.或程序.或脚本. 1.I/O重定 ...

  8. [Bootstrap] 2. class 'row' & 'col-md-x' & 'col-md-offset-x'

    Usually when desgin a web page, we think building the page in grid. Bootstrap can help us to do that ...

  9. Android手机中获取手机号码和运营商信息

    代码如下: package com.pei.activity; import android.app.Activity; import android.os.Bundle; import androi ...

  10. 101个直接可以拿来用的JavaScript实用功能代码片段(转)

    1.原生JavaScript实现字符串长度截取 function cutstr(str, len) { var temp; var icount = 0; var patrn = /[^x00-xff ...