有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何忽略字符串中的字符

在下面的代码中,我试图激活if语句。在if语句中,xxxxx可以等于任何长度的字符,但不能等于。结尾处的txt是必需的

import java.util.Scanner;

public class Example {
  public static void main(String args[]) {

    Scanner keyboard = new Scanner (System.in);
    String save = keyboard.nextLine();

    if ("save xxxxx.txt".equals(save)) {
        System.out.println("Success!");
    } else {
        System.out.println("Failed!");
       }
   }
}

我应该能够输入以下内容:

  • “save hellothere.txt”它应该传递if语句(因为存在save and.txt)
  • “save goodbyehelloletmegoo.txt”应该通过,因为存在save and。文本

在以下情况下不应通过:

  • “保存hello”它不会通过,因为没有。文本
  • “hello.txt”它将不会通过,因为没有保存

谢谢你的帮助


共 (4) 个答案

  1. # 1 楼答案

    我认为String::containsString::endsWith的组合将解决这个问题

    if (save.contains("something") && save.endsWith("something")){
        //do something 
    }
    
  2. # 2 楼答案

    试试这个

        Scanner keyboard = new Scanner(System.in);
    
        String save = keyboard.nextLine();
        String s = "save "+save.replace("save", "").replace(".txt", "").trim()+".txt";
    
        System.out.println(s);
        System.out.println(save);
    
        if (s.equals(save))
        {
            System.out.println("Success!");
        }
        else 
        {
            System.out.println("Failed!");
        }
    
  3. # 3 楼答案

    尝试一些正则表达式,比如:

    if (save.matches("save .+\\.txt")) {
    
  4. # 4 楼答案

    可以使用带有一些基本约束的Regex,比如

    token.matches("save\\.[A-Z]*[0-9]*[_]*[-]*\\.txt"))
    

    进一步限制这一点