java面试题,将String字符串转换成数字

题目要求:将String字符串转换成数字,不能用java自带的方法转换字符串,要求自己写一个atoi(String s),如果输入的不是数字则返回0。

import java.util.Scanner;

/**
 * Created by Dell on 2014/7/14.
 *
 * 面试题
 * 将字符串转换成数字,不用java自带的方法
 */
public class MianShi_01 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("str = ");
        String str = input.nextLine();
        System.out.println(new MianShi_01().atoi(str));
    }

    public int atoi(String s) {
        int[] num = new int[10];
        int j = 0;
        String tmp = null;
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(0) == ‘-‘ || Character.isDigit(s.charAt(i))) {
                if (s.charAt(0) == ‘-‘) {
                    tmp = "-";
                }
                switch (s.charAt(i)) {
                    case ‘0‘:
                        num[j] = 0;
                        j++;
                        continue;
                    case ‘1‘:
                        num[j] = 1;
                        j++;
                        continue;
                    case ‘2‘:
                        num[j] = 2;
                        j++;
                        continue;
                    case ‘3‘:
                        num[j] = 3;
                        j++;
                        continue;
                    case ‘4‘:
                        num[j] = 4;
                        j++;
                        continue;
                    case ‘5‘:
                        num[j] = 5;
                        j++;
                        continue;
                    case ‘6‘:
                        num[j] = 6;
                        j++;
                        continue;
                    case ‘7‘:
                        num[j] = 7;
                        j++;
                        continue;
                    case ‘8‘:
                        num[j] = 8;
                        j++;
                        continue;
                    case ‘9‘:
                        num[j] = 9;
                        j++;
                        continue;
                }
            }
            else {
                return 0;
            }
        }
        int NUM = (int) Math.pow(10, j);
        int a = 0;
        for (int i = 0; i < num.length; i++) {
            NUM = NUM / 10;
            a += num[i] * NUM;
        }
        if (tmp != null) {
            return -a;
        }
        return a;
    }
}

java面试题,将String字符串转换成数字,布布扣,bubuko.com

时间: 2024-12-25 20:51:31

java面试题,将String字符串转换成数字的相关文章

将字符串转换成数字

问题描述: Implement atoi to convert a string to an integer. 解题思路: 对于一个字符串需要注意一下几点: 1.过滤字符串开头的所有空格字符: 2.注意数字字符前面的"+"和"-"字符,从而确定数字的正负号: 3.只处理数字字符,一旦出现非数字字符,立即停止字符串处理,并返回已处理的结果: 4.返回结果时要注意数字越界的问题,不能大于最大值,不能小于最小值. class Solution { public: int

js字符串转换成数字,数字转换成字符串

js字符串转换成数字   将字符串转换成数字,得用到parseInt函数. parseInt(string) : 函数从string的开始解析,返回一个整数. 举例:parseInt('123') : 返回 123(int): parseInt('1234xxx') : 返回 1234(int): 如果解析不到数字,则将返回一个NaN的值,可以用isNaN()函数来检测: 举例 : var i = parseInt('abc'); if (isNaN(i)) { alert('NaN value

字符串转换成数字以及注意事项

将字符串转换成数字: 有符号转换需要用到atoi,atol,atoll等.无符号转换需要使用strtoul和strtoull等. (1)常用的转换函数 转换出来的是有符号的: #include <stdlib.h> int atoi(cosnt char *nptr); long atol(const char* nptr); long long atoll(const  char*nptr); long long atoq(const  char*nptr); long int strtol

PHP面试题之驼峰字符串转换成下划线样式例子

自己在看到这个问题的时候,想到的是用ASCII码来处理,没往万能的正则上去想.好吧,下面来看看答案: 答案1: 代码如下 复制代码 $str = 'OpenAPI'; $length = mb_strlen($str); $new = ''; for($i = 0; $i < $length; $i++){ $num = ord($str[$i]); $pre = ord($str[$i - 1]); $new .= ($i != 0 && ($num >= 65 &&

js 字符串转换成数字的三种方法

在js读取文本框或者其它表单数据的时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b.value,因为他们都是字符串形式的.在网上找了一下js字符串转数字的文章,这个比较全 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才

JS字符串转换成数字

方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行:对其他类型返回的都是NaN(Not a Number). 一些示例如下: 复制代码 代码如下: parseInt("1234blue"); //returns 1234parseInt("0xA"); //retu

JavaScript字符串转换成数字的三种方法

在js读取文本框或者其它表单数据的时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b.value,因为他们都是字符串形式的.在网上找了一下js字符串转数字的文章,这个比较全 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才

js 字符串转换成数字的三种方法--转

在js读取文本框或者其它表单数据的时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b.value,因为他们都是字符串形式的.在网上找了一下js字符串转数字的文章,这个比较全 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才

js 字符串转换成数字(转)

转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行:对其他类型返回的都是NaN(Not a Number). 一些示例如下: 复制代码 代码如下: parseInt("1234blue"); //returns 1234parseInt("0xA"); //returns 10parseInt("22.5"); //