Java 我想打印字符串中的第一个字母,然后在不使用拆分函数的情况下以小写形式打印空格后的字符

Java 我想打印字符串中的第一个字母,然后在不使用拆分函数的情况下以小写形式打印空格后的字符,java,Java,我的问题是:我想这样打印而不使用拆分功能 输入:Rushikesh Balchand Chaudhari 产出:Rushikesh.b.c class Test { public static void main(String[] args) { String str = "Rushikesh Balchand Chaudhari"; String [] arr = str.split("\\s+"); StringBuilder builder = new Strin

我的问题是:我想这样打印而不使用拆分功能

输入:Rushikesh Balchand Chaudhari

产出:Rushikesh.b.c

class Test {
public static void main(String[] args) {
    String str = "Rushikesh  Balchand Chaudhari";
    String [] arr = str.split("\\s+");
    StringBuilder builder = new StringBuilder(arr[0]);
    for(int i =1 ; i < arr.length ;i++){
        builder.append(".");
        builder.append(arr[i].toLowerCase().charAt(0));
    }
    System.out.println(builder);
}
}以下是代码:

您只需要检查索引,并使用一些布尔值,它就可以达到这个目的

您还可以优化此代码

class test {
    public static void main(String[] args) {
        String str = "Rushikesh Balchand Chaudhari";
        boolean isWhiteSpace = false;
        boolean afterWhitespace = false;
        StringBuilder builder = new StringBuilder();
        for(int i = 0 ; i < str.length() ; i++){
            if(str.charAt(i) == ' '){
                isWhiteSpace =true;
                afterWhitespace = true;
            }
            else if (str.charAt(i) != ' ') {
                if(!afterWhitespace){
                    builder.append(str.charAt(i));
                }
                if(isWhiteSpace && afterWhitespace){
                    builder.append(".");
                    builder.append(str.toLowerCase().charAt(i));
                    isWhiteSpace = false;
                }
            }
        }
        System.out.println(builder);
    }
}
这是你的答案

 String h="Number Of White Spaces";
   StringBuilder sb=new StringBuilder();
    ArrayList< Integer> al=new ArrayList<>();
    for(int i=0;i<h.length();i++){

        if(h.charAt(i)==' '){

                al.add(i);
        }
    }

    for(int l=0;l<al.size();l++){
        int a=al.get(l);    
        if(l==0){
            sb.append(h.substring(l,a));
            sb.append('.');
            sb.append(h.substring(a+1,a+2).toLowerCase());
        }
        else{

            sb.append('.');
        sb.append(h.substring(a+1, a+2).toLowerCase()); 
        }
    }


System.out.println(sb.toString());
输出->
Number.o.w.s

您尝试过单步执行代码吗?如果str1没有空,则str1.substringstr1.indexOf中会显示什么,1?您在if块之后修改了原始字符串。现在没有空间了。indexOf现在将返回-1。