gpt4 book ai didi

java - 如何保留字符串中所有出现的特定字符(不区分大小写)并使所有非字母字符不受影响?

转载 作者:行者123 更新时间:2023-11-30 09:59:36 25 4
gpt4 key购买 nike

我正在尝试用 Java 实现一个程序,该程序读取和写入文本文件并进行各种字符串操作。

我正在为程序的这一部分而苦苦挣扎,希望有人能帮我解决这个问题:

给定输入字符串,我需要保留所有与文件中匹配的小写和大写字母,删除所有不匹配的字母,并保留数字和特殊字符在文件中的位置。

例如,如果一个文件包含这个文本“abc123ABC$$”并且用户要求保留“ab”,那么结果应该是“ab123AB$$”(即小写和大写“a”和“b”保留在原位,数字和特殊字符不受影响)。

现在,当 keep = "ab"时,函数只返回 "ab"。这是代码片段:

public static String keepChar(String file, String keep) {

String result = "";

while(file.length() != 0)
{
int index = file.indexOf(keep);

if(index != -1)
{
result = result + file.substring(0,index) + keep;
file = file.substring(index + keep.length());
}
else
{
//result = result + file;
break;
}
}
return result;
}

我该怎么办?任何帮助将不胜感激。

最佳答案

如果适合您,请检查以下代码:

给定字符串 "abc123ABC$$" 和用户输入 "bc" ,它打印 "bc123BC$$"

String input = "bc";
String sample = "abc123ABC$$";
String result = "";
for (int i = 0; i < sample.length(); i++) {
if (input.toUpperCase().contains(String.valueOf(sample.charAt(i)).toUpperCase())
|| (!Character.isLetter(sample.charAt(i)))) {
result+=String.valueOf(sample.charAt(i));
}
}
System.out.println(result);

更新:

根据您的上一条评论,如果您也想根据用户输入保留数字,则 if 语句应如下所示:

if (input.toUpperCase().contains(String.valueOf(sample.charAt(i)).toUpperCase())
|| ((!Character.isLetter(sample.charAt(i))) && (!Character.isDigit(sample.charAt(i)))) ) {

关于java - 如何保留字符串中所有出现的特定字符(不区分大小写)并使所有非字母字符不受影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58733488/

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