【问题标题】:Separating single input line by colons用冒号分隔单个输入行
【发布时间】:2023-03-20 23:36:01
【问题描述】:

所以,这是我的问题:

我必须要求用户输入他的地址,每个部分用冒号分隔。输入将是单行,例如:

19 Wave Street: Austin: Texas: 16543

然后我必须接受该输入并使用“\n”将其显示为输出。输出应显示为四个单独的行:

19 Wave Street 
Austin
Texas
16543

我见过人们拆分字符串,但前提是他们已经有了一个设置字符串,而不是基于用户输入的字符串。此外,我必须使用冒号作为标记来知道何时打印新行。我写了这个:

包裹地址; 导入 java.util.Scanner;

公开课地址 {

public static void main(String[] args) {

    Scanner input =  new Scanner(System.in);

    System.out.println ("Enter your street adress, city, state, and zip" +
            "code all followed by colons."); 

    String one = input.nextLine(); 

String[] result = one.split("\\s");
    for (String result1 : result) {
        System.out.println(result1);

    }

} }

但它最终只在每个空格之后打印,而不是在冒号之后。

我对java非常陌生,我真的不知道从哪里开始。

【问题讨论】:

  • 我没有找到任何冒号..\
  • 杰瑞,澄清一下,: 是一个冒号,, 是一个逗号。
  • 您说“冒号”,但您的字符串使用逗号 (",")。如果您真的是指冒号,请适当地编辑您的问题。如果您真的是指逗号,请适当地编辑您的问题,我建议您查看 CSV 解析器;逗号很难正确解析——考虑“123 Main street, Unit 1, Austin TX 78701”的地址

标签: java regex string newline


【解决方案1】:

根据以下正则表达式拆分您的输入。

String[] result = one.split(",\\s*");

这将根据逗号和后面的零个或多个空格分割字符串。

我认为您错误地将逗号用作冒号。如果您的意思是冒号,请尝试one.split(":\\s*");

【讨论】:

    猜你喜欢
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多