gpt4 book ai didi

java - 如何从字符串中过滤某些数字值并返回其余部分

转载 作者:行者123 更新时间:2023-12-02 05:12:28 24 4
gpt4 key购买 nike

我需要创建一个以字符串作为输入的方法,例如“我在 37 个荒野中有 2456 个气球”,如果 n 设置为 3 并且“more”设置为 false,则该方法将返回“我有荒野中的 2 个气球”。如果more设置为true,则会返回“我在7个荒野中有456个气球”

我已经对过滤部分进行了相当多的研究,但我不知道如何将该方法的其余部分放在一起。这是我到目前为止所想出的:

public class Test1
{
public static void main(String [] args)
{
List<Integer> lst= new ArrayList<Integer>();
//Take user input any number of times based on your condition.

System.out.println("Please enter a number :");
Scanner sc= new Scanner(System.in);
int i= sc.nextInt();
if(i==0 || i==1 || i==2 ||i==3)
{
lst.add(i);
}
//Go back
}
}

或者我可以使用这样的东西:

int input;
do {
input = sc.nextInt();
} while (input < 0 || input > 3);

我对 Java 还很陌生,所以这项任务的进展很慢

如何获得此方法来根据两个值(数字和 true/false 更多)保存字母和过滤数字?

最佳答案

这是一个带有解释的简单解决方案。请注意,我们使用了非常简单的方法,但仍然需要进行大量验证。另外,还有更短的解决方案,但这是我编写的,以便 Java 新手更清楚。

public static void main(String[] args) {
Scanner sc= new Scanner(System.in);

System.out.println("Enter your string: ");
String strInput = sc.nextLine();

System.out.println("Enter n: ");
int n = sc.nextInt();

System.out.println("Do you want more? (Y/N)");
char more = sc.next().charAt(0);

String result = "";

// Loop through all the characters in the String
for(char c : strInput.toCharArray()) {

// Check if the character is a number
// If not, just append to our result string
if(!Character.isDigit(c)) {
result += c;
} else {
// Converts character to the number equivalent value
int numValue = Character.getNumericValue(c);

// If more is 'Y', we check if it's greater than the number and append
// else if more is 'N', we check if the value is less than n then append.
// Otherwise, do nothing.
if (more == 'Y' && numValue > n) {
result += c;
} else if (more == 'N' && numValue < n) {
result += c;
}
}
}

System.out.println(result);
}

关于java - 如何从字符串中过滤某些数字值并返回其余部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56318778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com