GVKun编程网logo

Java等同于Python的format()(java和python互通吗)

15

本文将为您提供关于Java等同于Python的format的详细介绍,我们还将为您解释的相关知识,同时,我们还将为您提供关于JavaScript是否等效于Python的format()函数?、Java

本文将为您提供关于Java等同于Python的format的详细介绍,我们还将为您解释的相关知识,同时,我们还将为您提供关于JavaScript是否等效于Python的format()函数?、Javascript相当于python的.format()、JavaScript等同于printf / String.Format、Java等同于PHP的mysql_real_escape_string()的实用信息。

本文目录一览:

Java等同于Python的format()(java和python互通吗)

Java等同于Python的format()(java和python互通吗)

这是执行字符串替换的两种方法:

name = "Tshepang""my name is {}".format(name)"my name is " + name

如何使用Java做与第一种方法类似的操作?

答案1

小编典典
name = "Paŭlo";MessageFormat f = new MessageFormat("my name is {0}");f.format(new Object[]{name});

或更短:

MessageFormat.format("my name is {0}", name);

JavaScript是否等效于Python的format()函数?

JavaScript是否等效于Python的format()函数?

Python具有以下功能:

bar1 = ''foobar''bar2 = ''jumped''bar3 = ''dog''foo = ''The lazy '' + bar3 + '' '' + bar2 '' over the '' + bar1# The lazy dog jumped over the foobar

变成这个:

bar1 = ''foobar''bar2 = ''jumped''bar3 = ''dog''foo = ''The lazy {} {} over the {}''.format(bar3, bar2, bar1)# The lazy dog jumped over the foobar

JavaScript有这样的功能吗?如果没有,我将如何创建一个遵循与Python实现相同的语法?

答案1

小编典典

使用该String.prototype.replace方法的另一种方法,将“替换”功能作为第二个参数:

String.prototype.format = function () {  var i = 0, args = arguments;  return this.replace(/{}/g, function () {    return typeof args[i] != ''undefined'' ? args[i++] : '''';  });};var bar1 = ''foobar'',    bar2 = ''jumped'',    bar3 = ''dog'';''The lazy {} {} over the {}''.format(bar3, bar2, bar1);// "The lazy dog jumped over the foobar"

Javascript相当于python的.format()

Javascript相当于python的.format()

我想要一个模仿 python .format()函数的 javascript函数
.format(*args,**kwargs)

前一个问题为’.format(* args)提供了一个可能的(但不是完整的)解决方案

JavaScript equivalent to printf/string.format

我希望能够做到

"hello {} and {}".format("you","bob"
==> hello you and bob

"hello {0} and {1}".format("you","bob")
==> hello you and bob

"hello {0} and {1} and {a}".format("you","bob",a="mary")
==> hello you and bob and mary

"hello {0} and {1} and {a} and {2}".format("you","jill",a="mary")
==> hello you and bob and mary and jill

我意识到这是一个很高的订单,但也许某个地方有一个包含关键字参数的完整(或至少部分)解决方案.

哦,我听说AJAX和JQuery可能有这方面的方法,但我希望能够在没有这些开销的情况下完成它.

特别是,我希望能够将其与google doc的脚本一起使用.

谢谢

解决方法

更新:如果您使用的是ES6,则模板字符串的工作方式与String.format: https://developers.google.com/web/updates/2015/01/ES6-Template-Strings非常相似

如果没有,下面的代码适用于上面的所有情况,其语法与python的String.format方法非常相似.以下测试用例.

String.prototype.format = function() {
  var args = arguments;
  this.unkeyed_index = 0;
  return this.replace(/\{(\w*)\}/g,function(match,key) { 
    if (key === '') {
      key = this.unkeyed_index;
      this.unkeyed_index++
    }
    if (key == +key) {
      return args[key] !== 'undefined'
      ? args[key]
      : match;
    } else {
      for (var i = 0; i < args.length; i++) {
        if (typeof args[i] === 'object' && typeof args[i][key] !== 'undefined') {
          return args[i][key];
        }
      }
      return match;
    }
  }.bind(this));
};

// Run some tests
$('#tests')
  .append(
    "hello {} and {}<br />".format("you","bob")
  )
  .append(
    "hello {0} and {1}<br />".format("you","bob")
  )
  .append(
    "hello {0} and {1} and {a}<br />".format("you",{a:"mary"})
  )
  .append(
    "hello {0} and {1} and {a} and {2}<br />".format("you",{a:"mary"})
  );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="tests"></div>

JavaScript等同于printf / String.Format

JavaScript等同于printf / String.Format

我正在寻找一种等效于C / PHP printf()或C#/
Java程序员String.Format()IFormatProvider适用于.NET)的JavaScript 。

我的基本要求是现在使用数字的千位分隔符格式,但是可以处理很多组合(包括日期)的东西会很好。

我意识到Microsoft的Ajax库提供了的版本String.Format(),但我们不希望该框架的全部开销。

答案1

小编典典

从ES6开始,您可以使用模板字符串:

let soMany = 10;console.log(`This is ${soMany} times easier!`);// "This is 10 times easier!

除此以外:

尝试sprintf()for JavaScript。


如果您真的想自己做一个简单的格式化方法,请不要先后进行替换,而要同时进行。

因为前面提到的其他替换提议中的大多数其他提议都失败了,而先前的替换字符串也包含这样的格式序列:

"{0}{1}".format("{1}", "{0}")

通常,您希望输出为,{1}{0}但实际输出为{1}{1}

Java等同于PHP的mysql_real_escape_string()

Java等同于PHP的mysql_real_escape_string()

是否有Java等价于PHP的mysql_real_escape_string()?

这是为了避免在将SQL注入尝试传递给Statement.execute()之前进行尝试。

我知道我可以改用PreparedStatement,但让我们假设这些只是一次声明,所以准备它们会导致性能降低。我已经将代码更改为使用PreparedStatement,但是考虑到现有代码的结构方式,escape()函数将使代码更改更易于查看和维护。我更喜欢易于维护的代码,除非有令人信服的理由说明其额外的复杂性。此外,数据库对PreparedStatement的处理方式也有所不同,因此这可能使我们面临以前从未遇到过的数据库错误,因此在发布到生产环境之前需要进行更多测试。

Apache StringEscapeUtils escapeSQL()仅对单引号进行转义。

后记:我继承的环境中有很多微妙之处,是我在问题中特意避免的。

需要考虑两点:

1)预备语句不是万能药,并且不能提供100%防止SQL注入的保护。一些数据库驱动程序使用不安全的字符串连接实例化参数化查询,而不是将查询预编译为二进制形式。另外,如果您的SQL依赖于存储过程,则需要确保存储过程本身不会以不安全的方式构建查询。

2)大多数准备好的语句实现将语句绑定到实例化该语句的数据库连接。如果您正在使用数据库连接池,则需要注意,
仅将预准备的语句引用与预准备的连接一起使用。一些池化机制确实透明地实现了这一点。否则,您也可以合并准备好的语句,或者(最简单但更麻烦的方法)为每个查询创建一个新的准备好的语句。

答案1

小编典典

据我所知,没有“标准”的方式来做到这一点。

尽管您当前担心,但我强烈建议您使用准备好的语句。对性能的影响将是微不足道的-我们有一个类似的情况,每秒有数千条语句-其中大多数也是单发的。

您获得的安全性应比尚未出现的性能问题高得多。我认为这是“不要过早优化”的明确情况。

无论如何,如果您以后真的要发现性能问题,请仔细分析以确保准备好的语句是真正的原因,然后寻找替代方法。到那时为止,您应该省去尝试正确进行转义的麻烦。

当我推断您正在开发某种面向公众的网站时,这一点甚至更为重要-内部应用程序很少会获得足够的流量来关注性能。

关于Java等同于Python的format的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于JavaScript是否等效于Python的format()函数?、Javascript相当于python的.format()、JavaScript等同于printf / String.Format、Java等同于PHP的mysql_real_escape_string()等相关内容,可以在本站寻找。

本文标签: