我想要做的是創建一個將兩個物件作為字串型別的輸入的方法。如果兩個字串相同(字間距和大小寫無關緊要),該方法將回傳邏輯真值。我想拆分字串,制作一個元素陣列,將每個元素添加到串列中,然后將每個元素與空間進行比較并將其從串列中洗掉。最后使用 compareToIgnoreCase() 方法。我停止從 List 中洗掉 string2 的空間。它適用于string1List,不適用于string2List,我想知道為什么?:(
我會很感激你的幫助,我花了很多時間在上面,但我被困住了。也許有人知道更好的解決方案。
import java.util.ArrayList;
import java.util.List;
public class Strings {
public static void main(String[] args) {
String string1 = "This is a first string";
String string2 = "this is a first string";
String[] arrayOfString1 = string1.split("");
List<String> string1List = new ArrayList<>();
for (int i = 0; i < arrayOfString1.length; i) {
string1List.add(arrayOfString1[0 i]);
}
String[] arrayOfString2 = string2.split("");
List<String> string2List = new ArrayList<>();
for (int i = 0; i < arrayOfString2.length; i) {
string2List.add(arrayOfString2[0 i]);
}
for (int i = 0; i < string1List.size(); i) {
String character = string1List.get(0 i);
if (character.equals(" ")) {
string1List.remove(character);
}
}
for (int i = 0; i < string2List.size(); i) {
String character = string2List.get(0 i);
if (character.equals(" ")) {
string2List.remove(character);
}
}
System.out.println(string2List.size());
}
}
uj5u.com熱心網友回復:
您可以嘗試以下解決方案。正如你提到的字間距和大小寫無關緊要
1.刪??除大寫 - 使用 toLowercase() 2.for 字間距 - 使用帶有正則運算式模式的 removeAll() 洗掉所有字間距,"\\s "以便洗掉所有空格。3. 現在檢查兩個字串。
public class StringChecker {
public static void main(String[] args) {
System.out.println(checkString("This is a first string", "this is a first string"));
}
public static boolean checkString(String string1, String string2){
String processedStr1 = string1.toLowerCase().replaceAll("\\s ", "");
String processedStr2 = string2.toLowerCase().replaceAll("\\s ", "");
System.out.println(" s1 : " processedStr1);
System.out.println(" s2 : " processedStr2);
return processedStr1.equals(processedStr2);
}
}
uj5u.com熱心網友回復:
您的問題與空格無關。您可以用任何其他字符(例如“a”)替換它們來測驗它。因此,在上面給出的任何方法中洗掉空格都不會改進您的代碼。
問題的根源是使用 for 命令迭代串列。當您從 for 回圈內的串列中洗掉專案時,在洗掉第 i 個元素后,串列中的下一個元素將成為第 i 個當前元素。
在回圈的下一次重復中 - 當 i 加一時 - 當前 i 1 項成為串列中的下一項,因此您“丟失”(至少)一項。
因此,使用 for 命令遍歷串列是一個壞主意。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/418869.html
標籤:
上一篇:函式不會洗掉標點符號
下一篇:使用PHP在特定點將字串插入字串
