自己实现parselnt方法的效果,将字符串形式的数据装换成整数。 要求:(1)最少一位,最多10位; (2)0不能开头; (3)字符串中只能是数字,不能有其他字符,否则显示数据格式有误。java
时间: 2023-11-27 11:51:42 浏览: 32
以下是一个可能的实现方式:
```java
public static int parseInteger(String s) throws NumberFormatException {
if (s.length() < 1 || s.length() > 10) {
throw new NumberFormatException("数据格式有误");
}
if (s.charAt(0) == '0') {
throw new NumberFormatException("数据格式有误");
}
int num = 0;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c < '0' || c > '9') {
throw new NumberFormatException("数据格式有误");
}
num = num * 10 + (c - '0');
}
return num;
}
```
这个方法首先检查字符串长度是否在合法范围内,然后检查第一位是否为0。接着使用循环遍历字符串中的每一位,如果发现非数字字符就抛出异常,否则将数字字符转换成整数并累加到结果中。最后返回结果。如果出现了异常,就抛出 NumberFormatException 异常并在异常信息中说明数据格式有误。
相关问题
["1","2","3"].map(parselnt)
同样会抛出错误,因为 "parselnt" 不是一个有效的函数名。我猜你的意思是想将数组 ["1", "2", "3"] 中的每个字符串元素都转换成整数,那么正确的写法是:
```
["1", "2", "3"].map(parseInt)
```
但是这样写也会有一些坑,因为 parseInt 函数有两个参数,第一个参数是要转换的字符串,第二个参数是转换时使用的进制。因此,上面的代码实际上会将数组中的元素按照不同的进制进行转换,导致不符合预期的结果。如果想要正确地将数组中的元素转换成整数,可以使用箭头函数来避免这个问题:
```
["1", "2", "3"].map(x => parseInt(x))
```
这样就能得到期望的结果了。
parselnt(3,10)
`parseInt(3, 10)` 的结果为整数 `3`。这是因为第二个参数 `10` 表示解析的进制数是 10 进制,而 `3` 在 10 进制下仍然表示数值 `3`,因此解析结果为整数 `3`。需要注意的是,如果第一个参数不是字符串类型,会先被转为字符串再进行解析,所以 `parseInt(3, 10)` 等价于 `parseInt("3", 10)`。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)