可以从字符串的末尾开始遍历,统计尾随零的个数。当遇到第一个不为零的字符时,停止遍历。然后将字符串的前缀部分截取出来,即为不含尾随零的整数。用Java
时间: 2024-02-13 08:04:32 浏览: 61
好的,以下是 Java 的实现代码:
```java
public static String removeTrailingZeros(String num) {
int count = 0;
for (int i = num.length() - 1; i >= 0; i--) {
if (num.charAt(i) == '0') {
count++;
} else {
break;
}
}
return num.substring(0, num.length() - count);
}
```
函数 `removeTrailingZeros` 接受一个字符串 `num`,返回不含尾随零的整数。首先定义一个计数器 `count`,初始化为 0。然后从字符串末尾开始遍历,如果遇到一个字符为 '0',则计数器加 1,否则跳出循环。最后使用 `substring` 方法截取字符串的前缀部分,起始位置为 0,结束位置为 `num.length() - count`,即为不含尾随零的整数。
例如,对于输入字符串 "51230100",函数返回 "512301";对于输入字符串 "123",函数返回 "123"。
相关问题
遍历字符串java
在 Java 中,可以使用 for 循环遍历字符串,也可以使用 foreach 循环。以下是两种不同的遍历方法:
1. 使用 for 循环:
```
String str = "Hello, World!";
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
System.out.print(c + " ");
}
```
2. 使用 foreach 循环:
```
String str = "Hello, World!";
for (char c : str.toCharArray()) {
System.out.print(c + " ");
}
```
以上两种方法都会遍历字符串中的每个字符,并将其输出到控制台。需要注意的是,在使用 for 循环遍历字符串时,需要使用 String 类的 length() 方法获取字符串的长度,并使用 charAt() 方法获取指定位置的字符。而在使用 foreach 循环遍历字符串时,则需要将字符串转换为字符数组,然后使用 foreach 循环遍历数组中的每个元素。
输入最多100个字符,再输入正整数n和m,从字符串的第n个字符(编号最小1)开始,截取m个字符,如到字符串末尾不够m个字符则到末尾结束C++(不用substr函数)
可以使用循环遍历字符串实现截取子串的功能,具体代码如下:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
int n, m;
getline(cin, str); // 输入字符串
cin >> n >> m; // 输入n和m
string sub_str = ""; // 存储子串
for (int i = n-1; i < n+m-1; i++) { // 遍历字符串
if (i >= str.length()) { // 到达字符串末尾
break;
}
sub_str += str[i];
}
cout << sub_str << endl; // 输出子串
return 0;
}
```
这里使用一个循环遍历字符串,从第n个字符开始截取m个字符,如果到达字符串末尾,则停止遍历。在遍历过程中,将每个字符添加到子串中。最后输出子串即可。
阅读全文