[英]Get a list of strings that contain a specified character from an array of string
[英]Replace all strings in array that contain minus character with another string
我要求用戶在控制台中插入數字。 然后,我打印這些數字,但是如果任何數字包含“-”,它將在括號內轉換為相同的數字。例如:如果用戶插入5 -17 35 -8,則輸出將為5(-17)35 (-8)
我嘗試過的代碼:
public class Run {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please enter numbers");
String s = input.nextLine();
String[] split = s.split(" ");
for (int i = 0; i < split.length; i++) {
if (split[i].contains("-")) {
split[i].replace(split[i], "(" + split[i] + ")");
}
}
input.close();
System.out.println(Arrays.toString(split));
}
}
但是它不起作用,因為它打印的數字與用戶輸入的數字完全相同。例如,5 -17 35 -8而不是5(-17)35(-8)。
我是Java的新手,所以這就是為什么我不明白問題所在。
您將-
替換為所需的格式,但是沒有將其重新存儲在split
數組中。
您必須替換以下代碼段:
if (split[i].contains("-")) {
split[i].replace(split[i], "(" + split[i] + ")");
}
這是更正的代碼段:
if (split[i].contains("-")) {
/* Change Here */
split[i] = split[i].replace(split[i], "(" + split[i] + ")");
}
您對替換的字符串不做任何事情。
只需調用此方法就不會直接替換字符串,它會返回一個新的字符串 ,您只需忽略它即可。
split[i].replace
所以你要做
spilt[i] = split[i].replace
方法replace(...)
不會更改您使用的String,而是使用替換后的值創建一個新的String。
您必須分配split[i].replace(split[i], "(" + split[i] + ")");
返回split[i]
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.