华为Java机试题锦集.docx
《华为Java机试题锦集.docx》由会员分享,可在线阅读,更多相关《华为Java机试题锦集.docx(12页珍藏版)》请在冰豆网上搜索。
![华为Java机试题锦集.docx](https://file1.bdocx.com/fileroot1/2022-12/13/53093eef-da4a-47ef-903c-4fbf747d972d/53093eef-da4a-47ef-903c-4fbf747d972d1.gif)
华为Java机试题锦集
2021年华为Java机试题锦集
2021年华为Java机试题锦集
Java对程序提供了安全管理器,防止程序的非法访问。
下面是我收集的华为Java机试题,希望大家认真阅读!
1.程序实现目标:
输入一个字符串,将其各个字符对应的ASCII值加5后,输出结果。
程序要求:
该字符串只包含小写字母,若其值加5后的字符值大于z,将其转换成从a开始的字符。
packagecom.xcbeyond;
/**
*@authorxcbeyond
*2021-5-7下午10:
37:
43
*1.程序实现目标:
输入一个字符串,将其各个字符对应的ASCII值加5后,输出结果。
*程序要求:
该字符串只包含小写字母,若其值加5后的字符值大于z,将其转换成从a开始的字符。
*/
publicclassStringParseASCII{
publicstaticvoidmain(String[]args){
System.out.print(stringParseASCII(abx));
}
publicstaticStringstringParseASCII(Stringstr){
StringBufferresult=newStringBuffer();
chartmp;
for(inti=0;i
int[]tmp=arr[i];
Arrays.sort(tmp);
minArr[i]=tmp[0];
}
returnminArr;
}
}
9.输入:
aaa,cattiger.123dd
输出:
tiger
功能描述:
键盘输入一句话
输出一句话中最常的单词,如果最长的出现多次,返回第一个。
这句话只包含数字字母和标点。
packagecom.xcbeyond;
importjava.util.ArrayList;
importjava.util.Scanner;
/**
*
*@authorxcbeyond
*2021-5-10下午09:
45:
03
*9.输入:
aaa,cattiger.123dd
*输出:
tiger
*功能描述:
键盘输入一句话
*输出一句话中最常的单词,如果最长的出现多次,返回第一个。
*这句话只包含数字字母和标点。
*/
publicclassGetLongString{
publicstaticvoidmain(String[]args){
System.out.println(请输入一句话:
);
Scannerconsole=newScanner(System.in);
Stringstr=console.nextLine();
System.out.println(最长的单词为:
+getLongString(str));
}
publicstaticStringgetLongString(Stringstr){
String[]wordStr=str.split([,.0-9]);
intsum=0;
ArrayListlist=newArrayList
if(dataStr[i]==0){
dataStr[i]=1;
}else{
dataStr[i]=0;
}
}
Stringstr=;
for(inti=0;i
str+=dataStr[i];
}
Stringres=Integer.valueOf(str,2).toString();
returnres;
}
}
18.功能描述:
判断一个字符串中的()是否配对
输入:
if(a.equals(a))
输出:
true
packagecom.xcbeyond;
/**
*@authorxcbeyond
*@date2021/05/1115:
50:
39
*/
publicclassIsMatch{
publicstaticvoidmain(String[]args){
Stringstr=if(a.equals(a));
System.out.println(isMatch(str));
}
publicstaticbooleanisMatch(Stringstr){
booleanisMatch=false;
char[]ch=str.toCharArray();
intcount=0;
for(inti=0;i
if(ch[i]==(){
count++;
}elseif(ch[i]==)){
count--;
}
}
if(count==0){
isMatch=true;
}
returnisMatch;
}
}
19.功能描述:
查找一个字符串的子字符串集
输入:
abab
输出:
ababbaababab
要求实现方法:
publicListgetChildren(Stringdata)
{
Listlist=newArrayList();
//TODO
returnlist;
}
20.功能描述:
数组的循环移位,
输入:
{a,b,c},2
输出:
{b,c,a}
要求实现方法:
/**
*data:
待循环数组
*index:
移动位数
*/
publicString[]getChildren(String[]data,intindex)
{
//TODO
returnnull;
}
packagecom.xcbeyond;
importjava.util.Arrays;
/**
*@authorxcbeyond
*@date2021/05/129:
16:
56
*/
publicclassDemo20{
publicstaticvoidmain(String[]args){
String[]data={a,b,c};
System.out.println(Arrays.toString(getChildren(data,2)));
}
publicstaticString[]getChildren(String[]data,intindex){
String[]resData=newString[data.length];
for(inti=0;i
resData[i]=data[index-1+i];
}
resData[resData.length-1]=data[0];
returnresData;
}
}
21.程序实现目标:
输入一个字符,将字符转换为小写,将其对应的ASCII值加5后,输出结果。
程序要求:
若其值加5后的字符值大于z,将其转换成从a开始的'字符。
输入:
A
输出:
f
packagecom.xcbeyond;
/**
*
*@authorxcbeyond
*@date2021/05/129:
31:
45
*/
publicclassDemo21{
publicstaticvoidmain(String[]args){
System.out.println(parseChar(X));
}
publicstaticcharparseChar(charch){
charresCh=a;
resCh=(char)(Character.toLowerCase(ch)+5);
if(resChz){
resCh=(char)(resCh-26);
}
returnresCh;
}
}
22.要求:
将一个二维数组进行逆序,逆序后所有的元素行列不定,进行随机排列
①先把数组每一行逆序
②再把逆序后每一行进行随机排列
如:
{{4,3,32,5},{1,2,3,4},{9,6,5,4}};
604659
3421
54323
packagecom.xcbeyond;
importjava.util.Random;
/**
*
*@authorxcbeyond
*@date2021/05/129:
55:
26
*/
publicclassDemo22{
publicstaticvoidmain(String[]args){
int[][]arr={{4,3,32,5},{1,2,3,4},{9,6,5,4}};
int[][]arr2=arrRandomReverse(arr);
for(inti=0;i
for(intj=0;j
System.out.print(arr2[i][j]+);
}
System.out.println();
}
}
publicstaticint[][]arrRandomReverse(int[][]arr){
int[][]resArr=newint[arr.length][];
for(inti=0;i
resArr[arr.length-1-i]=arr[i];
}
Randomr=newRandom();
for(inti=0;i
for(intj=0;j
intp=r.nextInt(resArr[i].length);
inttmp;
tmp=resArr[i][j];
resArr[i][j]=resArr[i][p];
resArr[i][p]=tmp;
}
}
returnresArr;
}
}
23.根据输入m数据,找出str的m个字符的所有字符串
例如abcm=2
abacbc
abcdm=3
abcacdbcdabd
publicArrayListperenum(Stringstr,intm)
{
returnnull;
}
24.分解质因数
eg:
输入28
输出2*2*7
25.n个长度的字符串中取m个长度的组合
26.二维数组转置
例:
123
456
转置
14
25
36
packagecom.xcbeyond;
/**
*@authorxcbeyond
*@date2021/05/1210:
56:
04
*/
publicclassDemo26{
publicstaticvoidmain(String[]args){
int[][]arr={{4,3,32,5},{1,2,3,4},{9,6,5,4}};
int[][]arr2=arrayReverse(arr);
for(inti=0;i
for(intj=0;j
System.out.print(arr2[i][j]+);
}
System.out.println();
}
}
publicstaticint[][]arrayReverse(int[][]arr){
int[][]resArr=newint[arr[0].length][arr.length];
for(inti=0;i
for(intj=0;j
resArr[i][j]=arr[j][i];
}
}
returnresArr;
}
}
27.功能描述:
输入字符串,将该字符串中数字放到非数字的后面,并保持原有顺序不变。
例如:
h3a2p0p1y----------happy3201
publicStringchildStr(StringinputStr){
}
packagecom.xcbeyond;
/**
*
*@authorxcbeyond
*@date2021/05/1211:
02:
27
*/
publicclassDemo27{
publicstaticvoidmain(String[]args){
Stringstr=h3a2p0p1y;
System.out.println(childStr(str));
}
publicstaticStringchildStr(StringinputStr){
StringnumStr=;
Stringstr=;
StringnumRegex=[0-9];
StringstrRegex=[a-zA-Z];
for(inti=0;i
if((inputStr.charAt(i)+).matches(numRegex)){
numStr+=inputStr.charAt(i);
}elseif((inputStr.charAt(i)+).matches(strRegex)){
str+=inputStr.charAt(i);
}
}
returnstr+numStr;
}
}
28.输入一个身份证号码(15位和18位)和一个年份,计算现在的年龄(忽略非法参数)
eg:
6106181990010202152021
输出:
21
packagecom.xcbeyond;
/**
*
*@authorxcbeyond
*@date2021/05/1211:
14:
56
*/
publicclassDemo28{
publicstaticvoidmain(String[]args){
Stringid=610618199001020215;
System.out.println(countAge(id,2021));
}
publicstaticintcountAge(StringID,intdate){
StringbirthDate=;
if(ID.length()==15){
birthDate=ID.substring(3,7);
}elseif(ID.length()==18){
birthDate=ID.substring(6,10);
}
intage=0;
age=date-Integer.parseInt(birthDate);
returnage;
}
}
29.输入一个字符串,如果是小写则转换成相应的大写字母的后五位,如果是VWXYZ则转换成abcde,其他的都不变,例如:
"aDsR154+-/.'则应该输出为"FDXR154+-/.'
packagecom.xcbeyond;
/**
*
*@authorxcbeyond
*@date2021/05/1213:
39:
20
*/
publicclassDemo29{
publicstaticvoidmain(String[]args){
Stringstr=aDsR154+-/.;
System.out.println(parseStr(str));
}
publicstaticStringparseStr(Stringstr){
StringBuffersb=newStringBuffer();
chartmp;
for(inti=0;i
if(str.charAt(i)=astr.charAt(i)=z){
tmp=(char)(Character.toUpperCase(str.charAt(i))+5);
if(tmpZ){
tmp=(char)(tmp-26);
}
sb.append(tmp);
}else{
sb.append(str.charAt(i));
}
}
returnsb.toString();
}
}
30.字母转换(完成给出类中的方法):
要求:
1、传入大写字母,返回小写字母。
2、返回的小写字母应为该大写字母对应的小写字母后第五个小写字母,
例:
出入A,则返回f.
3、若按2中的要求返回的字母超过z,则超过1返回a,超过2返回b,依次类推;
publicclasstest{
publicstaticvoidmain(String[]args)
{
//可写测试代码
}
//需要完成的方法
publiccharupperToLower(charupperCase)
{
//完成代码
}
}
packagecom.xcbeyond;
/**
*
*@authorxcbeyond
*@date2021/05/1214:
05:
49
*/
publicclassDemo30{
publicstaticvoidmain(String[]args){
charch=A;
System.out.println(upperToLower(ch));
}
publicstaticcharupperToLower(charupperCase){
charresCh=a;
resCh=(char)(Character.toLowerCase(upperCase)+5);
if(resChz){
resCh=(char)(resCh-26);
}
returnresCh;
}
}
31.删除一个字符串里出现次数最多的子字符串
如果有多个出现次数相同的并且出现次数最多则将多个全部删除比如abbccd得到结果ad
32.判断字符串首字母就大写,非首字母小写
1、如输入Good返回TRUE
2、过程中不需要输出任何IO流。
33.将一个英文语句以单词为单位逆序排放。
例如"Iamaboy',逆序排放后为"boyaamI'
所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
接口说明
/**
*反转句子
*
*@paramsentence原句子
*@return反转后的句子
*/
publicStringreverse(Stringsentence);
packagecom.xcbeyond;
/**
*
*@authorxcbeyond
*@date2021/05/1214:
23:
12
*/
publicclassDemo33{
publicstaticvoidmain(String[]args){
Stringstr=Iamaboy;
System.out.println(reverse(str));
}
publicstaticStringreverse(Stringsentence){
Stringregex=[*];
String[]ch=sentence.split(regex);
StringBuffersb=newStringBuffer();
for(inti=ch.length-1;i=0;i--){
sb.append(ch[i]+);
}
returnsb.toString();
}
}
34.题目背景
写出一个程序,接受一个浮点数值,输出该数值的近似整数值。
如果小数点后数值大于等于5,向上取整;小于5,则向下取整
接口
intround(doubled)
举例
-4.5四舍五入的结果是-4
4.4四舍五入的结果是4
packagecom.xcbeyond;
/**
*
*@authorxcbeyond
*@date2021/05/1214:
32:
50
*/
publicclassDemo34{
publicstaticvoidmain(String[]args){
doubled=3.65;
System.out.println(round(d));
}