我正在尝试分割字符串
这里是物品
但是如果字符串是GTA ONE
我想忽略ONE
只需输入GTA
打印出所有以GTA
开头的游戏
GTA ONE
GTA THREE
GTA FOUR
GTA FIVE
但不能因为“ GTA ONE”而失败
错误是当我键入“ GTA”时出现的。
它确实返回所有匹配的“ GTA”和null。
我要消除空值。
仅当没有游戏时才返回null值。 有人可以向我解释吗? 谢谢。
class Game{
private String name;
public Game(String name{
this.name = name;
}
public String getName(){return name};
public boolean hasGame(String name){
return name.equalsIgnoreCase(this.name);
}
@Override
public String toString(){
return name + " " + edition;
}
}
class Shop{
private LinkedList<Game> games = new LinkedList<Game>();
public Shop(){
games.add(new Game("GTA ONE");
games.add(new Game("Sonic One");
games.add(new Game("GTA THREE");
games.add(new Game("GTA FOUR");
games.add(new Game("GTA FIVE");
}
public static void main(String args[]){
new Shop().sell();
}
private Game game(String name){
ArrayList<Product> tempGames = new ArrayList<Product>();
boolean fix2 = false;
for(Game game: games)
if(game.hasGame(name)){
return game;
}
else if(game.getName().contains(name)){
tempGames.add(game);
fix2 = true;
}
if(fix2)
for(Game tempGame: tempGames)
System.out.println(tempGame);
return null;
}
}
private void sell() {
String name = "GTA";
Game game = game(name);
if(game != null){
System.out.println("Selling " + name);
}
else{
System.out.println(name + " does exist in the store.");
}
}
答案 0 :(得分:2)
由于您没有比较全名,因此需要使用contains
而不是equalsIgnoreCase
中的hasGame
。
除此之外,还必须更正方法sell
和game
以符合您的要求。方法game
需要返回一个List<Game>
,因此您需要对方法sell
进行更改。
执行以下操作:
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
class Game {
private String name;
public Game(String name) {
this.name = name;
}
public String getName() {
return name;
}
public boolean hasGame(String name) {
return this.name.contains(name);
}
@Override
public String toString() {
return name;
}
}
public class Shop {
private LinkedList<Game> games = new LinkedList<Game>();
public Shop() {
games.add(new Game("GTA ONE"));
games.add(new Game("Sonic One"));
games.add(new Game("GTA THREE"));
games.add(new Game("GTA FOUR"));
games.add(new Game("GTA FIVE"));
}
public static void main(String args[]) {
Shop shop = new Shop();
shop.sell("GTA");
System.out.println();
shop.sell("XYZ");
}
private List<Game> game(String name) {
List<Game> tempGames = new ArrayList<Game>();
for (Game game : games) {
if (game.hasGame(name)) {
tempGames.add(game);
}
}
return tempGames;
}
private void sell(String name) {
List<Game> games = game(name);
if (!games.isEmpty()) {
System.out.println("Selling: ");
for (Game game : games) {
System.out.println(game);
}
} else {
System.out.println(name + " does not exist in the store.");
}
}
}
输出:
Selling:
GTA ONE
GTA THREE
GTA FOUR
GTA FIVE
XYZ does not exist in the store.