【问题标题】:How do I put a remove a leading space when printing something in java?在 java 中打印某些内容时,如何删除前导空格?
【发布时间】:2021-12-06 19:26:34
【问题描述】:

如何在 java 中打印内容时删除前导空格?

import java.util.Scanner;
import java.io.IOException;
public class InitialsProject {
    public static void main(String args[]) throws IOException {   
        Scanner scan = new Scanner(System.in);
        System.out.print("Enter your name: ");
        String name = scan.nextLine();
        char firstInitial = name.charAt(0);
        int index = name.indexOf(" ");
        System.out.println(firstInitial + name.substring(index++,index+1));
   }
}

示例输入: John Doe

输出: J D

【问题讨论】:

  • 使用name.substring(index+1,index+2)
  • 或者name.substring(index + 1).charAt(0) 但是,你应该检查index > 0

标签: java substring indexof


【解决方案1】:

所以你的问题有点模糊,但我认为你的问题是“为什么它打印“J D”而不是“JD””

简单的回答是index++是后期操作,即index的值先被使用(substring),然后更新。您可以通过使用预操作来修复它,即++index,但我建议使用index + 1(和index + 2)更具可读性且不易出错。

但是...您可以通过多种方式执行此操作

例如,您可以简单地使用String#split

String text = "John Doe";
String[] parts = text.split(" ");
if (parts.length == 1 && !parts[0].isEmpty()) {
    System.out.println(parts[0].charAt(0));
} else if (parts.length == 2) {
    if (!parts[0].isEmpty() && !parts[1].isEmpty()) {
        System.out.println(parts[0].charAt(0) + " " + parts[1].charAt(0));
    } else if (!parts[0].isEmpty()) {
        System.out.println(parts[1].charAt(0));
    } else if (!parts[1].isEmpty()) {
        System.out.println("..." + parts[1].charAt(0));
    } else {
        System.out.println(text + " is an invalid input");
    }
} else {
    System.out.println(text + " is an invalid input");
}

nb:我有点防备,没办法

或者你可以直接使用charAt...

int index = text.indexOf(" ");
if (index >= 0) {
    if (index + 1 < text.length()) {
        System.out.println(text.charAt(0) + " " + text.charAt(index + 1));
    } else {
        System.out.println(text.charAt(0));
    }
} else {
    // Handle all the other possible conditions
}

这两个例子都将打印J D

【讨论】:

    【解决方案2】:

    只需使用 charAt 就可以解决问题,

    System.out.println(firstInitial + name.charAt(index+1));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-16
      • 1970-01-01
      相关资源
      最近更新 更多