java - Java中的多个字符
问题描述
public class String_multiply {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String str = s.next();
int len = str.length();
int i=0;
String c_s = new String();
while(i<len) {
if (Character.isAlphabetic(str.charAt(i))){
char c = str.charAt(i);
c_s = String.valueOf(c);
i++;
}
String n ="";
while(Character.isDigit(str.charAt(i))) {
n+=str.charAt(i);
i++;
}
int inte =Integer.parseInt(n);
System.out.print(c_s.repeat(inte));
}
}
}
我不知道,我哪里出错了。我得到“字符串索引超出范围:4”作为错误。
输入:a1b4c3
输出:abbbbccc
解决方案
问题是这个循环:
while(Character.isDigit(str.charAt(i))) {
n+=str.charAt(i);
i++;
}
它尝试从字符串中读取一系列数字,但如果i
超过字符串的末尾,它不会停止。
如果出现以下情况,您必须停止该循环i == len
:
while(i < len && Character.isDigit(str.charAt(i))) {
n+=str.charAt(i);
i++;
}
推荐阅读
- join - 过滤后的数据如何通过 django 查询从新应用程序(数据库表)存储在新模型中
- python - 翻译 Excel Solver 以解决 Python 中的非线性规划
- c++ - C++20 不支持 .mm 文件中的语义导入
- rest - MvC中spring security中每个路径/路由的不同AuthenticationManager
- javascript - 如何使用 vuejs 为 v-radio-button 的每个项目添加字幕?
- python - 在 aws lambda 函数中使用外部 python 库
- python - 没有名为 pafy 的模块
- wordpress - WordPress重定向URL中匹配的字符串
- android - 为什么添加“assets_audio_player”后“flutter run”会产生错误?
- flutter - 如何用圆形磨砂玻璃做到这一点