小编Ter*_* Li的帖子

Javascript对象构造函数与对象文字

可能重复:
创建对象 - 新对象或对象文字符号?
文字符号VS. 构造函数在JavaScript中创建对象

我正在阅读我的第一个Javascript教程.

我刚刚发现了两种创建JS对象的方法.

var person = new Object();
person.name = "Tom";
person.age = "17";
Run Code Online (Sandbox Code Playgroud)

var person = {};
person.name = "Tom";
person.name = "17"
Run Code Online (Sandbox Code Playgroud)

这两种对象创建方式有何不同?由于第二个看起来更简单,我们是否可以在任何条件下使用它?

javascript

17
推荐指数
1
解决办法
2万
查看次数

excel文件中的整数变成了浮点数?

我用来xlrd从excel文件中读取数据.

对于存储在文件中的整数,比方说63,将其xlrd解释为63.0类型number.

为什么不能xlrd识别63为整数?

假设sheet.row(1)[0].value给了我们63.0.我怎样才能将它转换回来63.

python xlrd

15
推荐指数
4
解决办法
2万
查看次数

为什么toString()方法在Java中的Array和ArrayList对象之间的工作方式不同

    String[] array = {"a","c","b"};
    ArrayList<String> list = new ArrayList<String>();
    list.add("a");
    list.add("b");
    list.add("c");
    System.out.println(array);
    System.out.println(list);
Run Code Online (Sandbox Code Playgroud)

list [a, b, c]输出是为了输出array某些地址.当我们想要输出array值时,我们可以使用Arrays.toString(array);哪个就像list.

我只是想知道为什么我们不能toString()直接调用array来获取值.这样做不是更直观和方便吗?什么导致不同的治疗ArrayArrayList

java arrays arraylist tostring

14
推荐指数
1
解决办法
5万
查看次数

更改多个文件Linux的名称

我在ubuntu机器上有许多名为a1.txt,b1.txt,c1,txt ...的文件.

有没有快速的方法将所有文件名更改为a2.txt,b2.txt,c2.txt ...?

特别是,我想替换部分名称字符串.例如,每个文件名都包含一个名为"apple"的字符串,我想在所有文件名中将"apple"替换为"pear".

任何命令或脚本?

linux file-rename

12
推荐指数
2
解决办法
2万
查看次数

为什么C++ boost包只包含.hpp文件?

我是C++的新手.我刚刚下载了Boost库来学习.我想查看一些实现细节,所以我找了.cpp文件.令我惊讶的是,到目前为止我还没有找到任何东西.

似乎只有.hpp文件..cpp文件在哪里?

c++ boost

12
推荐指数
4
解决办法
4369
查看次数

通过JavaScript可靠地更改浏览器历史记录中的页面标题

是否可以在加载页面后通过JavaScript更改浏览器历史记录中页面的标题?应该是跨浏览器(当然)并且在不支持HTML5 History API的浏览器上工作,我的主要目标浏览器是Chrome.

我已经尝试了很多方法,但它们似乎都不可靠.这是我上次尝试过的(history.js):

<html>
    <head>
        <title>Standard title</title>
        <script src="https://rawgit.com/browserstate/history.js/master/scripts/bundled-uncompressed/html4%2Bhtml5/native.history.js"></script>
    </head>
    <body>
        <script>
            window.setTimeout(function(){
                document.title = "My custom title";
                History.replaceState({}, "My custom title", window.location.href);
            }, 3000);
        </script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

如果我在页面加载Standard title后3秒内在Chrom中加载历史页面,我看到,在3秒后我得到了My custom title.

为什么我需要这个:我有一个只适用于JavaScript的应用程序(Angular 1),它运行在不同的环境(开发,测试,生产)上.我想显示一个标题MyApp (<environmentName>),但我不想为每个环境构建我的应用程序的单独版本.相反,应用程序可以通过AJAX从后端请求环境信息并更新页面标题.所有这一切都很好(页面标题得到更新),但浏览器历史记录仍显示"标准"标题.

有没有办法在浏览器历史记录中更改页面的标题?

javascript google-chrome browser-history angularjs

12
推荐指数
1
解决办法
2136
查看次数

获取Java数组的最后一个元素的任何更简单的方法?

String sentence = "Any simpler way to get the last element of a Java array?";
String lastToken = sentence.split(" ")[sentence.split(" ").length-1];
Run Code Online (Sandbox Code Playgroud)

我想分开句子并得到最后一个标记.我觉得我这样做有点太尴尬了.基本上,我希望第二个陈述更短.那可能吗?

编辑:我正在寻找:1)无需单独声明数组2)无需拆分句子两次.如果有一个last用数组调用的方法会很好.我怀疑这是不可能的,但我想确定.

java

11
推荐指数
2
解决办法
5万
查看次数

Java Pattern类没有公共构造函数,为什么?

我一直在审查Java Regex库,因为这个Pattern类没有我多年来认为理所当然的公共构造函数这一事实感到惊讶.

我怀疑使用静态compile方法支持构造函数的一个原因可能是构造函数总是返回一个新对象,而静态方法可能会返回先前创建的(和缓存的)对象,前提是模式字符串是相同的.

但是,如下所示,情况并非如此.

public class PatternCompiler {
    public static void main(String[] args) {
        Pattern first = Pattern.compile(".");
        Pattern second = Pattern.compile(".");
        if (first == second) {
            System.out.println("The same object has been reused!");
        } else {
            System.out.println("Why not just use constructor?");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

使用静态方法而不是构造函数的任何其他强有力的理由?

编辑:我在这里找到了一个相关的问题.那里的答案都没有说服我.通过阅读所有答案,我感觉静态方法相对于公共构造函数在创建对象方面具有相当多的优势,而不是相反.真的吗?如果是这样,我将为我的每个类创建这样的静态方法,并安全地假设它更具可读性和灵活性.

java constructor static-methods design-patterns factory-pattern

10
推荐指数
4
解决办法
2318
查看次数

整数分配为总和和产品

这是我需要做的:编写一个算法,将给定的整数分成总和和产品,但每个后续数字必须大于前一个,即:

6 = 1+5;
6 = 1+2+3;
6 = 1*2+4;
6 = 2+4;
6 = 2*3;
Run Code Online (Sandbox Code Playgroud)

基本分区整数算法不起作用,因为它以不同的顺序返回数字.

我不是要求最终的代码,我只是要求一些提示和建议,以便我可以继续自己.非常感谢你提前!

java algorithm integer

10
推荐指数
1
解决办法
336
查看次数

Java Map按值排序

我一直在寻找Map<String, Integer>按价值排序的方法.我发现这篇文章解决了我的排序问题,但并不完全正确.根据帖子,我写了以下代码:

import java.util.*;

public class Sort {

    static class ValueComparator implements Comparator<String> {

        Map<String, Integer> base;

        ValueComparator(Map<String, Integer> base) {
            this.base = base;
        }

        @Override
        public int compare(String a, String b) {
            if (base.get(a) >= base.get(b)) {
                return 1;
            } else {
                return -1;
            }
        }
    }

    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<String, Integer>();
        ValueComparator vc = new ValueComparator(map);
        TreeMap<String, Integer> sorted = new TreeMap<String, Integer>(vc);
        map.put("A", 1);
        map.put("B", …
Run Code Online (Sandbox Code Playgroud)

java sorting hashmap treemap comparator

9
推荐指数
1
解决办法
2万
查看次数