![](/img/trans.png)
[英]How do I set a password inputted by the User to encrypt a string inputted by the user in 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.