我有名字String []让我们假设“Raj Kumar”。然后条件是我想从Raj获得“R”而从“Kumar”获得“K”,如果文本是“Raj”,那么我必须从“Raj”获得“Ra”。我如何在下面执行此操作是我想要修改的代码。
代码: -
List<ListView_Model> books;
public CustomListViewAdapter1(Activity activity, int resource, List<ListView_Model> books) {
super(activity, resource, books);
this.books=books;
this.activity = activity;
}
答案 0 :(得分:0)
您可以尝试这样:
public static final String[] titles = new String[]{"Raj", "Niraj Kumar"};
for(int i = 0;i<titles.length;i++){
if(titles[i].contains(" ")){
char firstChar = titles[i].charAt(0) + titles[i].split(" ")[1].charAt(0);
}else{
char firstChar = titles[i].charAt(0) + titles[i].charAt(1);
}
}
答案 1 :(得分:0)
你这个方法
public String getShortName(String name){
String[] token=name.split(" ");
if(token.length>1){
String value="";
for(int i=0;i<token.length;i++){
value+=token[i].substring(0,1);
}
return value;
}else{
return token[0].length()>1?token[0].substring(0,2):token[0];
}
}
我测试了它,对于名称数组,在for循环中使用此方法
答案 2 :(得分:0)
首先,创建此方法以处理数组中的每个字符串:
1. git fetch --all
2. git reset --hard origin/{branch_name}
然后,使用以下方法流式传输数组并映射每个项目:
private static String processString(String string) {
String[] words = string.split(" ");
if (words.length == 1) {
return words[0].substring(0, 2);
} else {
return Arrays.stream(words).map(x -> Character.toString(x.charAt(0))).collect(Collectors.joining());
}
}
然后您可以像这样打印出值:
List<String> mapped = Arrays.stream(titles)
.map(YourEnclosingClass::processString)
.collect(Collectors.toList());
答案 3 :(得分:0)
final String[] titles = new String[]{"Raj", "Niraj Kumar"};
for (int i = 0;i<titles.length;i++){
String shortChar;
String[] nameSplit = titles[i].split("\\s+");
if(nameSplit.length == 1) {
shortChar = nameSplit[0].substring(0,2);
} else {
shortChar = nameSplit[0].substring(0,1) + nameSplit[1].substring(0,1);
}
}
在这里,您将获得 Ra 和 NK 作为输出(希望该名称仅包含名字和名字)
答案 4 :(得分:0)
以下是使用流API的另一种方法:
Arrays.stream(titles)
.map(title -> title.contains(" ") ?
Arrays.stream(title.split(" "))
.reduce("", (a, b) -> a + b.charAt(0)) :
title.substring(0, 2))
.forEach(result -> {
// do with result
});