在群里经常碰到很多找工作的朋友回来就谈论自己的面试经历,被问到或者笔试过程中碰到的一些题目,下面把前两天几个朋友提出的问题进行简单的实现下,希望各位大虾指教!代码如下所示:
package com.myclover.exam;
public class Exam {
private static final char[] SRC_NUMS = "零一二三四五六七八九".toCharArray();
/**
* 功能说明:把阿拉伯数字转换成中文的数字,即1-->一,10-->十
* @author myclover
* @param num 传入一个阿拉伯数字,正整数
* @return 返回值:返回对应的中文数字
*/
public static String convertIntToString(int num){
String sNum = String.valueOf(num);
StringBuffer numSb = new StringBuffer();
for(int i = sNum.length() - 1 , j = 0 ; i >= 0 ; i-- , j++){
char ch = sNum.charAt(i);
if(ch == '0'){
if(i < sNum.length() - 1 && sNum.charAt(i + 1) != '0'){
numSb.append(SRC_NUMS[0]);
}
}else{
if(j == 1){
numSb.append("十");
//这里表示的是11-19,去掉前面的一,变成十几
if(i == 0 && ch == '1'){
continue;
}
}else if(j == 2){
numSb.append("百");
}
numSb.append(SRC_NUMS[ch - '0']);
}
}
return numSb.reverse().toString();
}
/**
* 功能描述:对一个正整数进行反转输出
* 一个朋友在群里聊到面试被问了这样一个题目,对一个正整数进行逆序输出,需要使用递归实现,例如传入:12345,则返回:54321
* @author myclover
* @param n 传入的正整数
* @return
*/
public static int reverseInts(int n){
String str = String.valueOf(n);
if(n < 0 || str.length() > 10){
return -1;
}
if(str.length() == 1){
return n;
}else if(str.length() > 1){
char ch = str.charAt(str.length() - 1);
String s = str.substring(0, str.length() - 1);
return (Character.digit(ch, 10) * (int)Math.pow(10, str.length() - 1)) + reverseInts(Integer.parseInt(s)) ;
}
return -1;
}
/**
* 功能描述:写一个方法,实现字符串转换为int类型,不能使用Integer包装类
* @author myclover
* @param str 传入的字符串
* @return
*/
public static int converStrToInt(String str){
if(str.length() > 10){
return -1;
}
int re = 0;
int count = str.length();
boolean isNegative = false;
for(int i = 0 ; i < str.length() ; i++){
if(str.charAt(i) == '-'){
isNegative = true;
count-- ;
continue;
}
if(str.charAt(i) == '+'){
isNegative = false;
count-- ;
continue;
}
count-- ;
int s = Character.digit(str.charAt(i), 10);
re += s * (int)Math.pow(10, count);
}
if(isNegative){
return -re;
}
return re;
}
/**
* 功能描述:对传入的字符串进行逆序输出,不能使用Java API自带的反转方法
* @author myclover
* @param str 传入的字符串
* @return
*/
public static String convertStrToStr(String str){
StringBuffer sb = new StringBuffer("");
if(str.length() == 1){
return str;
}else if(str.length() > 1){
return sb.append(str.substring(str.length() - 1)).append(convertStrToStr(str.substring(0, str.length() - 1))).toString();
}
return null;
}
}
分享到:
相关推荐
Java程序员面试笔试真题与解析,包含各大IT企业面试笔试的题目
Java程序员面试笔试宝典-何昊pdf版,高清,带有书签。
Java程序员面试笔试宝典2018最新版Java程序员面试笔试宝典
Java程序员面试笔试真题与解析,高清,绝对高清制作的
2018java程序员面试宝典+题库,很全。压缩的文档,打开是PDF版
本书针对当前各大 IT 企业面试笔试中的特性与侧重点,精心挑选了近 3 年来 18 家顶级 IT 企业的面试笔试真题,这些企业涉及业务包括系统软件、搜索引擎、电子商务、手机 APP 以及安全软件等,非常具有代表性与参考性...
java程序员面试笔试宝典 + 115个Java面试题和答案+进入IT行业必读的324个java面试题
《Java程序员面试笔试真题与解析》
java程序员面试笔试试题.pdf,这是一份不错的文件
自己收集的一些Java程序员笔试面试题,还有一些数据库面试笔试题,张孝祥的一些Java就业面试题。
pdf版本,非扫描版,很清楚。何昊编写的java程序员面试笔试宝典
本书除了对传统的计算机相关知识(Java语言基础知识、Web基础知识、数据结构与算法、操作系统、计算机网络与通信、数据库、设计模式等)以及面试笔试真题进行分析与解答外,还根据当前计算机技术的发展潮流,对面试...
《Java程序员面试笔试真题库》猿媛之家编著
综合各公司面试,笔试的最常见的几个陷阱题
java程序员面试笔试常见题目总结,32个题目。
何昊编写的 java程序员面试笔试宝典,比较经典的一本书,里面都是一些知识点
java程序员常见面试程序题,都是一些企业经常考的题目