如何使用for循环将以下程序解析为适当的输出?

西尔维斯特

假定以下Java程序以这种方式操纵用户输入的字符串,即用户将决定需要用另一个字符替换哪个字符,而应该替换字符串中的最后一个字符。例如,如果用户输入字符串“ OYOVESTER”并决定将“ O”替换为“ L”,则程序应输出以下结果:“ OYLVESTER”(注意,只有最后一个“ O”被替换为“ L”)

注意:您不能使用BREAK命令来停止循环。禁止。

import java.util.Scanner;
public class StringFun {

    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        
        System.out.println("Enter the string to be manipulated");
        String inString = keyboard.nextLine();
        String outString = "";
        
        //Replace Last
        System.out.println("Enter the character to replace");
        char oldCharF = keyboard.next().charAt(0);
        
        System.out.println("Enter the new character");
        char newCharF = keyboard.next().charAt(0);
        
        int count = 0; // variable that tracks number of letter occurrences
        for(int index = inString.length() - 1;index >= 0;index--) {
            if(inString.charAt(index) == oldCharF && count < 1){
                outString = newCharF + outString;
                outString = outString + inString.substring(0,index);
                count++;
                
            }
            if (count < 1) {
                outString = outString + inString.charAt(index);
            }
            
        }

        System.out.print("The new sentence is: "+outString);
        

    }

}

我不断收到以下不正确的输出:

输入要操作的字符串

奥威斯特

输入要替换的字符

输入新角色

大号

新句子是:LRETSEVOY

表格

有很多更简单的方法可以满足您的要求,但我希望您必须通过循环(不间断)进行演示。

然后,您可以使用类似以下内容的东西:

boolean skip = false;

for (int index = inString.length() - 1; index >= 0; index--) {
  if (!skip && inString.charAt(index) == oldCharF) {
    outString = newCharF + outString;
    skip = true;
  }
  else {
    outString = inString.charAt(index) + outString;
  }
}

PS:不建议在循环中使用String串联,因为每个String串联都会复制整个String,通常最好将其替换为对StringBuilder.append()或的显式调用StringBuffer.append()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将以下字符串解析为DateTime?

如何使用 javascript 将以下值数组解析为 XML,也可以使用以下 XSD 进行验证?

如何将以下对象数组解析为以下格式以进行显示

如何将以下多维类似xml的数据解析为数据框

如何使用以下输出为Currency Converter API设计JSON解析器实体对象

如何将以下“poly”输出转换为可在 Excel 中使用的函数?

如何将以下使用复选框的数据表脚本代码调整为我的 asp.net 核心应用程序?

如何使用 htaccess 将以下 urls 模式重写为特定的 php 文件?

如何将以下XML扩展为TSQL中的表?

如何将以下内联代码重写为块?

如何将以下代码编写为递归方法?

如何将以下代码表达为公式

如何保存以下程序的输出?

如何将以下 if 语句正确重写为条件语句?使用乘法复合赋值运算符

如何使用JAVA将以下CSV转换为Hashmap

无法将以下文本文件解析为pandas数据框?

如何将以下 for 循环代码更改为更快的方式,例如没有循环?

如何将以下输出收集到csv文件中

如何将以下数组分组并在ejs中输出?

我如何将以下if语句转换为更有效的嵌套for循环

如何将以下循环转换为自顶向下的动态编程?

如何将以下内容添加到循环中?

解析输出/如何使用powershell解析输出

如何将值解析为适当的目标类型

检测移动浏览器:如何将以下内容重写为if AND else语句?

如何将以下划线开头的字段编组为JSON [Golang]

如何将以下3个查询压缩为一个?

如何将以下数组重塑为另一个数组?

如何将以下代码分解为android中的各个类