java - 减少和打印字符串数组
问题描述
我正在尝试通过使用 for 循环来减少字符串数组。这是我尝试做的一个例子
User string input: Calculus
User input:5
output: CalcuCalcCalCaC
我已将字符串转换为 char 数组,但是在尝试多次打印它们时问题就出现了。它只打印一次并且具有正确的起始输出。
input string: Oregon
input number: 4
output: Oreg
我注意到我的 for 循环说当我将鼠标悬停在从 JetBrains 下载的 IDE 上时它没有循环。
我尝试了不同的递减和递增组合,但无法得到“for 语句没有循环”。除此之外,我尝试了不同的方法在 for 循环中做某事,但如果 for 循环当时没有循环,我认为现在不需要做任何事情,对吧?
所以我的问题是,如何减少字符串或字符数组并一遍又一遍地打印递减值?
Here is my code so far for it.
public String wordDown(String userString, int userNum)
{
String stringModded = userString.substring(0, userNum);
char[] charArray = stringModded.toCharArray();
char repeat = ' ';
for(int i = 0; i<userNum; ++i)
{
repeat = (char) (repeat +charArray[i]);
charArray[i] = repeat;
for(int j = 1; i > charArray.length; ++j)
{
String modWord = String.valueOf(charArray[i + 1]);
return modWord;
}
}
return null;
}
public static void main(String[] args)
{
int userNumber;
String userString;
RandomArrayFunctionalities ranMethod = new RandomArrayFunctionalities();
Scanner in = new Scanner(System.in);
System.out.println("\nEnter a word:");
userString = in.next();
System.out.println("\nEnter a number within the word scope that you just enter:");
userNumber = in.nextInt();
System.out.println(ranMethod.wordDown(userString, userNumber));
}
解决方案
您不需要修改原始数组。使用 aStringBuilder
连接单词的连续部分。使用该String.substring(int,int)
方法拉出那些部件。下面的示例使用递减索引来生成连续更小的子字符串。
public String wordDown(String word, int userNum) {
StringBuilder sb = new StringBuilder();
for (int length = userNum ; length > 0 ; --length) {
sb.append(word.substring(0, length));
}
return sb.toString();
}
推荐阅读
- angular6 - Angular 6 - 如何提交表单的一个区域(但不是整个表单)
- ios - 无论纵横比如何,Endless Runner 都会重新定位播放器以获得相同的难度
- java - JPA创建Schema后如何让组件初始化?
- php - 使用 PHP 从 HEIC 照片中读取 EXIF 数据
- javascript - 为什么这个 forEach 循环嵌套?
- javascript - 在 HTML 网页上滚动播放 Lottie / Bodymovin 动画
- java - 如何使用动作监听器从按钮获取背景颜色
- gremlin - Gremlin:如何在同一条边上向后遍历
- python - 如何解决“ValueError:无法转换为 Excel”?(使用 Python 和 openpyxl)?
- reactjs - React nativ,aws-amplify 存储,获取 aws.cognito.identity-id