`
b051
  • 浏览: 10323 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java strings and JavaScript strings

阅读更多
在Rhino on Rails来临之前,想做做热身运动。用rhino做了一些小玩意,用javascript来配置领域模型中的策略部分。在其中发现了一个javascript和Java的String之间关于共有的split方法的一个小问题。
比如这样一个检测方法:
var check = function(s) { return [].merge(s.split(/\s+/)).join(' '); };

可以想象,直接在Rhino中运行(我加上了mootools)的结果是:
'a b  c  d a' => 'a b c d'
但如果你把它'注入'
var c = new Check({check:check});

到比如这样一个java类:
public interface Check { Object check(String s); }

然后再执行的话:
c.check('a b  c  d a');

那么问题就出现了,结果还是原来的字符串。
一步步调试,发现问题是传到Check类中的是java.lang.String。如果用split('\s+')倒是可以解决一部分问题。但是这样的配置就不透明了啊。
查过文档,也没有很明确地说,查过org.mozilla.javascript.NativeString类,知道了至少是有方法的,随便试了一下,如果加一句
s=''+s

就可以比较好的解决转换问题。
但依然不透明,那么只有在'注入'的时候加一点料了,
var c = new Check({check:function(s){s=''+s;return check(s);}});





分享到:
评论

相关推荐

    Sammie Bae - JavaScript Data Structures and Algorithms - 2019.pdf

    about data structures and algorithms written in JavaScript. This was strange to me because today many of the job opportunities for software development require knowledge of JavaScript; it is the only ...

    JavaScript 圣经第5版-Javascript编程宝典--黄金版 .rar

    Key topics include programming fundamentals, JavaScript language elements and how to use them effectively, and how to easily and efficiently add powerful new functionality to HTML documents and Java ...

    java7帮助文档

    Oracle has two products that implement Java Platform Standard Edition (Java SE) 7: Java SE Development Kit (JDK) 7 and Java SE Runtime Environment (JRE) 7. JDK 7 is a superset of JRE 7, and contains ...

    Java Platform SE 8 jdk8 API文档 CHM格式

    10. **Nashorn JavaScript引擎**:Java 8内置了一个JavaScript引擎,允许Java程序执行JavaScript代码,提供了Java与JavaScript之间的互操作性。 11. **并发改进**:`Fork/Join`框架的引入,使得并行计算变得更加...

    Java-jdk-1.7.0_80

    8. **JavaScript引擎(Nashorn)**:内置的JavaScript引擎,允许Java程序与JavaScript代码交互。 总的来说,Java JDK 1.7.0_80作为一个64位版本,适用于需要高性能计算和大内存应用的环境。对于那些需要长期支持和...

    JavaScript实现Java中StringBuffer的方法

    在JavaScript中,没有内置的`StringBuffer`类,但我们可以模拟Java中的`StringBuffer`类的行为,以提高字符串拼接的效率。Java的`StringBuffer`类提供了动态字符串构建的功能,尤其是在处理大量字符串连接时,相比...

    JavaScript in 10 Minutes

    2. **Java Classes and Interfaces**: Although the title mentions "Java classes and interfaces," this section likely discusses JavaScript's approach to object-oriented programming, including class-like ...

    javascript权威指南(第六版)

    11. JavaScript Subsets and Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 11.1 JavaScript Subsets 266 11.2 Constants and Scoped Variables 269 11.3 ...

    Java完美编程(第三版)

    尽管随着Web技术的发展,如JavaScript和HTML5的普及,Applets的应用已经逐渐减少,但在Java学习过程中仍然值得了解。 **1.1.4 A Sample Java Application Program** 这一小节提供了一个简单的Java应用程序示例,...

    javascript

    Asynchronous JavaScript and XML(异步JavaScript和XML)允许不刷新整个页面的情况下与服务器交换数据并更新部分网页内容。 1. **创建XMLHttpRequest对象**:创建异步请求的核心对象。 2. **发送请求(Send ...

    JAVA5-6新特性列表.doc

    1. **支持脚本引擎的新框架**:JSR 223引入了ScriptEngine API,允许在Java中执行JavaScript、Ruby等脚本语言。 2. **UI的增强**:Swing组件得到了改进,如Swing Worker支持在后台线程执行任务,提升用户体验。 3....

    java api 1.7 中文文档

    9. **JavaScript引擎(Nashorn)**:JDK 1.7引入了Nashorn JavaScript引擎,允许Java程序直接与JavaScript代码交互,为混合语言开发提供了便利。 10. **改进的编译器和JVM优化**:Javac编译器的性能提升,以及垃圾...

    Java数据传输之消息字符串应用

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java中,可以使用`org.json`库或者Google的`Gson`库将Java对象转换为JSON字符串,反之亦然。例如,...

    JavaScript学习手册

    JavaScript最初被称为LiveScript,后来为了与Java形成关联而更名为JavaScript,但两者在语法和设计上存在显著差异。 JavaScript规范是由ECMA国际组织制定和维护的,主要规范为ECMAScript。自1997年以来,已经经历了...

    用matlab运行MD5代码-utl_match_strings_regardless_of_the_order_of-letters:无论字

    Javascript WPS Matlab SPSS Scala Perl CC# Excel MS Access JSON 图形映射 NLP 自然语言处理 机器学习 igraph DOSUBL DOW 循环 stackoverflow SAS 社区. Match strings regardless of the order of letters see ...

    整套Java+Android病毒与反病毒视频教程

    根据提供的标题、描述以及部分链接内容,我们可以推断出这套“整套Java+Android病毒与反病毒视频教程”主要涉及的是Java与Android开发的基础及进阶知识,并未直接提到关于病毒与反病毒的具体内容,因此这里将侧重于...

    重新认识JavaScript

    - **Strings**:字符串在JavaScript中是以Unicode编码的字符序列。可以使用单引号或双引号定义字符串,且两种方式具有相同的效果。 - **Objects**:对象是JavaScript中最核心的数据类型之一,几乎所有的其他类型都...

    jdk1.8-windows版64位

    ** JDK 1.8 includes a built-in JavaScript engine called Nashorn, allowing Java developers to execute JavaScript code within the JVM and facilitate interoperation between Java and JavaScript. ...

    PHP and MYSQL Bilbe [英文原版]

    Chapter 38: PHP and JavaScript 703 Chapter 39: PHP and Java 719 Chapter 40: PHP and XML 731 Chapter 41: Web Services 757 Chapter 42: Graphics 775 Part V: Case Studies 799 Chapter 43: Weblogs 801 ...

Global site tag (gtag.js) - Google Analytics