华为机试题目
2015-03-27 11:35
253 查看
题目:输出大写字母
输入一个字符串,输出其中的大写字母
输入 2, sdARSFGfg
输出 ARSFG
输入一行数字:123 423 5645 875 186523
在输入第二行:23
将第一行中含有第二行中“23”的数输出并排序
结果即:123 423 186523
输入字符串单词,将单词小写全部变为大写。
华为机试—子串分离
题目描述:
通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。请编写一个程序,自动分离出各个子串,并使用’,’将其分隔,并且在最后也补充一个’,’并将子串存储。
如果输入“abc def gh i d”,结果将是abc,def,gh,i,d,
示例
输入:“abc def gh i d”
输出:“abc,def,gh,i,d,”
华为机试—删除相同子串
输入两个字符串,找出在第一个字符串中,有多少个第二个子串,输出个数,
并输出删除全部第二个子串后的字符串。
输入:abcdcde cd
输出:2 abe
输入一个字符串,输出其中的大写字母
输入 2, sdARSFGfg
输出 ARSFG
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.regex.Matcher; import java.util.regex.Pattern; public class OutputCapital { public static void main(String[] args) throws Exception { /** * 利用正则 * 1、首先循环迭代判断输入的字符是否是字母,如果是用StringBuffer添加到一个新的字符串中 * 2、判断是否为大写字母,用StringBuffer添加到一个新的字符串中 */ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.println("请属于一串字符串,并按回车结束:"); String str = in.readLine(); StringBuffer buff = new StringBuffer(); StringBuffer buf = new StringBuffer(); //去除首尾空格 str.trim(); //循环取出是字母字符 for(int i = 0;i<str.length();i++){ Character ch = str.charAt(i); String st = ch.toString(); String s = isEnglishNumber(st); if(s != null){ buff.append(s); } System.out.print(st+"_"); } System.out.println("留下字母的:" + buff.toString()); str = buff.toString(); //循环取出含有大写字母的 for(int i = 0;i<str.length();i++){ Character ch = str.charAt(i); String st = ch.toString(); String s = isCapital(st); if(s != null){ buf.append(s); } System.out.print(st+"_"); } System.out.println("留下大写字母的:" + buf.toString()); } /** * 匹配字母的 * @param english * @return */ public static String isEnglishNumber(String english){ Pattern pattern = Pattern.compile("[A-Za-z]"); Matcher matcher = pattern.matcher(english); if(!matcher.matches()){ return null; } return english; } /** * 匹配大写字母 * @param english * @return */ public static String isCapital(String english){ Pattern pattern = Pattern.compile("[A-Z]"); Matcher matcher = pattern.matcher(english); if(!matcher.matches()){ return null; } return english; } }
输入一行数字:123 423 5645 875 186523
在输入第二行:23
将第一行中含有第二行中“23”的数输出并排序
结果即:123 423 186523
import java.io.BufferedReader; import java.io.InputStreamReader; public class Contain { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.println("请输入一行数字,中间以空格隔开为一个数字:"); String str = in.readLine(); String[] s = str.split(" "); for(int i = 0;i<s.length;i++){ if(s[i].contains("23")){ System.out.println("包含23的数为:"+s[i]); } } } }
输入字符串单词,将单词小写全部变为大写。
import java.io.BufferedReader; import java.io.InputStreamReader; public class DaXiaoXieZhuanHuan { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.println("请输入一串字符串"); String str = in.readLine(); String upperCase = null; String lowerCase = null; if(str != null && str.length() >0){ upperCase = str.toUpperCase(); lowerCase = str.toLowerCase(); } System.out.println("变为大写字母:" + upperCase); System.out.println("变为小写字母:" + lowerCase); } }
华为机试—子串分离
题目描述:
通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。请编写一个程序,自动分离出各个子串,并使用’,’将其分隔,并且在最后也补充一个’,’并将子串存储。
如果输入“abc def gh i d”,结果将是abc,def,gh,i,d,
示例
输入:“abc def gh i d”
输出:“abc,def,gh,i,d,”
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.regex.Matcher; import java.util.regex.Pattern; public class ZiChuanFenLi { public static void main(String[] args) throws IOException { /*判断是否有空格测试 String str = "fsa fasd"; Boolean b = str.contains(" "); System.out.println(b); */ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.println("请输入一串字符并回车结束:"); String str = in.readLine(); //去除首尾空格 String trim = str.trim(); String replace = null; System.out.println("去除首尾空格字符串为:--" + trim +"-----"); String regEx = "[' ']+"; // 一个或多个空格 //利用正则表达式 Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(trim); if(trim != null && trim.length() >0){ replace = m.replaceAll(",").trim(); } replace = replace + ","; System.out.println("替换后字符串为:--" + replace); } }
华为机试—删除相同子串
输入两个字符串,找出在第一个字符串中,有多少个第二个子串,输出个数,
并输出删除全部第二个子串后的字符串。
输入:abcdcde cd
输出:2 abe
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.regex.Matcher; import java.util.regex.Pattern; public class ShanChuXiangTongZiChuan { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.println("请输入一串字符串:"); String str = in.readLine(); System.out.println("请输入子串"); String s = in.readLine(); String[] st = str.split(s); StringBuffer buff = new StringBuffer(); for(int i = 0;i<st.length;i++){ System.out.println(st[i]); buff.append(st[i]); } Pattern p = Pattern.compile(s,Pattern.CASE_INSENSITIVE); <span style="white-space:pre"> </span>Matcher m = p.matcher(str); <span style="white-space:pre"> </span>int count = 0; <span style="white-space:pre"> </span> <span style="white-space:pre"> </span>while(m.find()){ <span style="white-space:pre"> </span>count ++; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>System.out.println("删除子串后字符串:" + buff.toString()); <span style="white-space:pre"> </span>System.out.println("出现的次数:"+count); } }
相关文章推荐
- 自己写的华为机试题目,只要思路对,编码迟早的
- 华为机试题目:识别字符串中的整数并转换为数字形式
- 2014年华为上机机试c语言题目和答案
- 2014华为机试题目
- 2013年9月华为机试题目
- 华为机试题目及答案(工程文件)
- 算法思维——字符串压缩程序(华为2014校园招聘的机试题目)
- 华为机试:求最小公倍数、Ja题目2-3级(走格子)
- 2014华为校招机试题目总结
- 华为机试题目 若干
- 2018华为校招机试题目练习
- 2016华为机试题目:最大的凸多边形
- 【华为机试】题目+解答+自己不足+提升
- 华为机试 题目
- java 华为机试题目-数组处理
- 2016华为机试题目:好友推荐
- 2017年,华为机试题目 《字符串按指定重新分配》 --Java实现
- 华为机试正式版(西安c/c++/java),今天下午去机试的题目,新奇出炉了!
- 华为2013年西安java机试题目:如何过滤掉数组中的非法字符。
- 009语音识别-华为机试题目