我有一系列字符串包含:额外的水,果汁和额外的牛奶,所以我想知道如何摆脱额外的东西并使用字符串中唯一的第二个字,以便预期的输出是水,果汁和牛奶。
答案 0 :(得分:3)
如果您只想删除特定的子字符串,那么:
private void GetProducts(int CategoryID)
{
ShoppingCart k = new ShoppingCart();
{
CategoryID = CategoryID;
};
dlProducts.DataSource = null;
dlProducts.DataSource = k.GetProdcuts();
dlProducts.DataBind();
}
这使用Java 8流,但你可以像迭代一样简单地完成它。
答案 1 :(得分:2)
使用String.split('')用空格分割字符串,然后检查结果以查看字符串长度是否== 2.如果是,则取数组的第二个元素,否则为第一个元素。 / p>
for( int i = 0; i < array.length; i++ ) {
String[] parts = array[i].split(' ');
if( parts.length == 2 ) {
array[i] = parts[1];
}
}
编辑:如果你想删除所有重复的单词,你可以在数组上使用两次传递来执行以下操作:
// Pass 1 -- find all duplicate words
Set<String> wordSet = new HashSet<>();
Set<String> duplicateSet = new HashSet<>();
for (int i = 0; i < array.length; i++) {
String[] parts = array[i].split(" ");
for (String part : parts) {
if (!wordSet.contains(part)) {
// Haven't seen this word before
wordSet.add(part);
} else {
// This word is a duplicate word
if (!duplicateSet.contains(part)) {
duplicateSet.add(part);
}
}
}
}
// Pass 2 -- remove all words that are in the duplicate set
for (int i = 0; i < array.length; i++) {
String[] parts = array[i].split(" ");
String dedupedString = "";
for (String part : parts) {
if (!duplicateSet.contains(part)) {
dedupedString += part + " ";
}
}
array[i] = dedupedString;
}
答案 2 :(得分:0)
只需要遍历数组的每个元素并替换&#34; Extra&#34;在数组的每个元素中,然后修剪空格。
String[] array = {"Extra Water", "Juice", "Extra Milk"};
for (int i = 0; i < array.length; i++) {
array[i] = array[i].replace("Extra", "").trim();
}
for (String each : array) {
System.out.println(each);
}