簡體   English   中英

Java-在用戶輸入的字符串之間添加星號

[英]Java - Adding Asterisks between a user inputted string

我正在做一個包含幾個單獨部分的課堂作業,除這一部分外,我都完成了所有工作。 我需要從用戶那里獲取字符串輸入,並創建一個在每個字符之間插入星號的循環(最好是for循環)。 我對此完全感到困惑,因此,如果有人可以給我一些幫助以開始使用,將不勝感激。

編輯:到目前為止,我已經提出了

    } else if (choice.equalsIgnoreCase("C")) {
        System.out.print("Enter text here: ");
        String orig = input.nextLine();

        // To use for asterisk insertion
        int x = 1;
        int y = 2;

        for (int length = orig.length(); length > 0;) {
            orig = orig.substring(0,x) + "*" + orig.substring(y);
            x = x + 2;
            y = y + 2;
        }

    } 

它編譯的很好,但是當我測試它並輸入一些文本時,它在線程“ main”中出現異常java.lang.StringIndexOutOfBoundsException:字符串索引超出范圍:5

您可以在字符串的字符上使用for循環(請參見下文),但是我只是這樣做:

str = str.replaceAll("(?<=.)(?=.)", "*");

搜索參數中的正則表達式匹配任意兩個字符之間的點,這是通過使用先行查找和先行查找來實現的,每一個斷言都在其中存在一個字符。


如果必須使用循環,則最簡單的代碼可能是:

String result = input.isEmpty() ? "" : input.substring(0, 1);
for (int i = 1; i < input.length(); i++)
    result += "*" + input.charAt(i);

稍微復雜的第一行迎合了用戶輸入空白的邊緣情況。 for循環已經可以滿足空白輸入的需要,因為終止條件對於空白始終為false,因此根本不會進行迭代。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM