首页 > 解决方案 > 防止字符串的最后一个字符在java中替换的任何方法

问题描述

假设要?在字符串中的每个字母之后添加。

String letters = "A@B@C@D"; //Split by @
String splitLetters[]=letters.split("@");

for(String ltr: splitLetters)
    System.out.println(ltr+"?");

输出将如下所示: A? B? C? D?

我想要的是防止最后一个字符得到改变。我只想更改第一个字母。

笔记:

用( ) 之类的直接方式@替换是行不通的。上面的代码只是一个例子。?...replace("@","?")

标签: javastring

解决方案


有很多方法可以做到这一点(如现有答案中已经描述的那样)。以下解决方案基于您自己的解决方案,并进行了所需的更改:

public class Main {
    public static void main(String[] args) {
        String letters = "A@B@C@D"; // Split by @
        String splitLetters[] = letters.split("@");
        boolean firstStrPrinted = false;
        for (String ltr : splitLetters) {
            if (firstStrPrinted) {
                System.out.print("?" + ltr);
            } else {
                System.out.print(ltr);
                firstStrPrinted = true;
            }
        }
    }
}

输出:

A?B?C?D

在这里,aboolean firstStrPrinted用于跟踪是否已打印第一个字符串。如果不是,请不要打印?并将其更新为true.


推荐阅读