如何在多个条件下从String获取第一个和第二个字符

时间:2018-01-08 12:14:35

标签: java

我有名字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;

}

5 个答案:

答案 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
    });