代码之家  ›  专栏  ›  技术社区  ›  Aman Gupta

编制报表等价物

  •  1
  • Aman Gupta  · 技术社区  · 6 年前

    对于SQL查询,我们有preparedStatement对象,它在编译时被编译,我们可以设置通配符(?)?在本例中)在运行时使用值。

    对于非SQL工作,是否有在Java中实现的等效方法,例如将StringFormat视为一个假设类:

    StringFormat sf = new StringFormat("ams_?_xyz);
    List<String> Codes = new ArrayList<>(Arrays.asList("a", "b"));
    for(Code c: Codes) {
      sf.set(1, c);
      String str = sf.getString();
      // do something
    }
    
    3 回复  |  直到 6 年前
        1
  •  0
  •   Lino    6 年前

    你可以用静电 String.format 方法:

    String template = "aws_%s_xyz";
    List<String> codes = new ArrayList<>(Arrays.asList("a", "b"));
    
    for(String code : codes){
        String str = String.format(template, code);
    }
    

    这个 "%s" 就像问号 ? 在准备好的陈述中。

        2
  •  1
  •   Minjun Yu    6 年前

    你能得到的最接近的是 String.format() :

    System.out.println(String.format("output %s %s", "a", "b")); // "output a b"
    
        3
  •  0
  •   Youcef LAIDANI    6 年前

    你可以用 String.format ,哪个看起来

    public static String format​(String format, Object... args)
    

    这需要一个字符串和一个varargs,您的代码可以是:

    List<String> codes = Arrays.asList("a", "b");
    String someString = "ams_%s_xyz";
    someString = String.format(someString, codes.toArray());
    

    这将返回:

    ams_a_xyz
        ^
    

    它将一个接一个地从数组中取出并替换为字符串,如果您有以下示例:

    String someString = "ams_%s_xyz__%s";
                             ^^      ^^
    

    这将返回:

    ams_a_xyz__b
        ^      ^
    

    等等