Я предлагаю вам использовать шаблон и сопоставление и отбросить результат в Set.
public void getWords()
{
Set<String> words = new HashSet<String>();
String pattern = "[a-zA-Z]+\\s";
String match = "hello world how* are. you! world hello";
Pattern compile = Pattern.compile(pattern);
Matcher matcher = compile.matcher(match);
while(matcher.find())
{
String group = matcher.group();
boolean add = words.add(group);
if(add)
{
System.out.println(group);
}
}
}
Выход:
hello
world
Измените свое определение того, что означает слово '- путем изменения шаблона.
Вы можете использовать Array.find()
для обоих сценариев.
Получить полное имя и имена пользователей по id
var obj = [
{
"id": 12345,
"fullname": "Kevin Johnson",
"usernames": ["kevin123", "kevinj", "kjohnson"]
},
{
"id": 123456,
"fullname": "Mark Johnson",
"usernames": ["Mark123", "Markj", "12Mark"]
}
];
var id = 123456;
var resObj = obj.find(item => item.id === id);
if(resObj){
console.log('Full name ', resObj.fullname);
console.log('usernames ', resObj.usernames);
} else {
console.log('No user found!');
}
Получить идентификатор и полное имя от имени пользователя
var obj = [
{
"id": 12345,
"fullname": "Kevin Johnson",
"usernames": ["kevin123", "kevinj", "kjohnson"]
},
{
"id": 123456,
"fullname": "Mark Johnson",
"usernames": ["Mark123", "Markj", "12Mark"]
}
];
var username = 'kevinj';
var resObj = obj.find(item => item.usernames.includes(username));
if(resObj){
console.log('Full name ', resObj.fullname);
console.log('id ', resObj.id);
} else {
console.log('No user found!');
}
Чтобы найти полное имя и имена пользователей по данному id:
var data = JSON.parse(your_json_string_here);
var person = data.find( x => x.id == **some_user_id**);
var fullName = person.fullname;
var usernames = person.usernames;
Чтобы найти имя и полное имя от имени пользователя:
var person = data.find( x => x.usernames.indexOf(**some_user_name**) > 0 );