如果一个单词由独特的字母组成(不区分大小写),我需要检查Java.由于直接的解决方案很无聊,我想出了:
indexOf(char) == lastIndexOf(char)
.HashSet
并检查set size ==字符串长度.c[i] == c[i+1]
.目前我最喜欢#2,似乎是最简单的方式.其他有趣的解决方案?
我正在制作Google Chrome扩展程序,我需要获取当前页面的网址和标题.我怎样才能做到这一点?
我试图生成具有对数分布的随机整数.我使用以下公式:
idx = Math.floor(Math.log((Math.random() * Math.pow(2.0, max)) + 1.0) / Math.log(2.0));
Run Code Online (Sandbox Code Playgroud)
这样可以很好地生成1000次迭代这样的序列(每个数字表示生成索引的次数):
[525, 261, 119, 45, 29, 13, 5, 1, 1, 1]
Run Code Online (Sandbox Code Playgroud)
我现在正在尝试调整此分布的斜率,因此它不会快速下降并产生类似于:
[150, 120, 100, 80, 60, ...]
Run Code Online (Sandbox Code Playgroud)
盲目地玩系数并没有给我我想要的东西.任何想法如何实现呢?
由于某些原因,Eclipse不记得某些java项目的源查找路径,并且每次调试时(重新部署后)我都需要按"编辑源查找路径"按钮并将当前项目添加到列表中.
有谁知道如何让它记住选定的源位置?
编辑: 这是一个用蚂蚁建造的tomcat项目.Eclipse版本是3.2.2
.classpath看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="web/WEB-INF/classes"/>
<classpathentry kind="lib" path="web/WEB-INF/lib/commons-collections-3.2.jar"/>
... bunch of libs here
</classpath>
Run Code Online (Sandbox Code Playgroud)
更新:我找到了必需的设置 - 它在General Preferences - > Tomcat - > Source path下.
我以异步方式加载FB API:
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({appId: 'your app id', status: true, cookie: true,
xfbml: true});
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
</script>
Run Code Online (Sandbox Code Playgroud)
我如何知道它何时被初始化?FB.ensureInit()
在API初始化之前,什么是阻止运行封闭代码的方法的替代品?
我有base64编码的图像.如果我把它正确地放到html中就可以了:
<img src="data:image/png;base64,..."/>
Run Code Online (Sandbox Code Playgroud)
但是,当我将所有base64内容放入一个单独的文件中时,它不会:
<img src="image.base64.txt"/>
Run Code Online (Sandbox Code Playgroud)
我尝试将扩展名更改为.png,但它没有帮助.有任何想法吗?
有时为了测试/开发目的,我们在必须在生产构建中删除的代码中进行一些更改.我想知道是否有一种简单的方法来标记这样的块,这样只要它们存在,生产构建就会失败,或者至少它会在构建过程中以某种方式警告你.
简单"//TODO:"
并不真正起作用,因为它被遗忘并混合了大量的其他待办事项.有什么更强的吗?
或者即使我可以创建一些外部txt文件并在生产之前放置有关该操作的说明,并且该ant将检查该文件是否存在然后取消构建.
我们正在使用Eclipse/Ant(和java + Spring).
更新:我并不是说在本地和生产中存在大量不同的代码.事实上,所有代码都是相同的,应该是相同的.简单地说,我注释掉了一些代码行,以便在开发过程中节省大量时间,并忘记取消注释或者沿着这些方向进行注释.我只是希望能够以某种方式标记项目需要注意的事项,并且生产构建将失败或显示警告.
我创建了一个名为quickmarks的扩展,它将在当前选中的选项卡上按关键字打开书签.我正在使用omnibox来选择书签(chrome.omnibox.onInputEntered
),并使用chrome.tabs.update
API在当前标签中打开书签的网址,方法是提供网址updateProperties
.但是,在更新选项卡后,焦点仍然保留在多功能框中,这使得用户体验不如我想要的那么好.那么有没有办法将焦点设置到页面,而不是多功能框.
顺便说一句,我试图通过使用打开一个新的选项卡chrome.tabs.create
.页面将被聚焦而不是多功能框,这是我想要的行为.
谢谢.
我试图获得LinkedHashMap
基于元素索引的子图.我在这里重新发明轮子吗?听起来这应该是API中的某个地方:
public <K,V> LinkedHashMap<K,V> subMap(LinkedHashMap<K,V> map, int fromIndex, int toIndex) {
LinkedHashMap<K,V> result = new LinkedHashMap<K,V>();
int i=0;
for(Map.Entry<K,V> entry : map.entrySet()) {
if(i >= fromIndex && i < toIndex) {
result.put(entry.getKey(), entry.getValue());
}
i++;
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
这是要走的路还是有其他更好/现有的解决方案(在Java 6 API中).
更新:将此添加到清单解决了它:
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="14"/>
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true"/>
Run Code Online (Sandbox Code Playgroud)
看起来谷歌默默地停止在平板电脑市场上列出新提交的应用程序,这些应用程序不符合他们的"优化提示".
其中一个"提示"是设置minSdkVersion="11"
,这意味着失去40%仍然运行sdk 10(热闹)的整个用户群.
有人可以建议一个最难以解决的解决方案,让我同时针对前11 SDK用户和平板电脑,最好不要进入多个APK业务.
如果要使用多个APK,那么分隔用户的最佳标准是什么,因此我至少可以拥有一个版本代码.
(该应用程序与所有屏幕尺寸和密度完全兼容,目前是目标minSdkVersion="8"
)
java ×4
algorithm ×2
eclipse ×2
javascript ×2
android ×1
ant ×1
apache ×1
base64 ×1
distribution ×1
facebook ×1
google-play ×1
html ×1
image ×1
math ×1
statistics ×1
string ×1
tablet ×1
todo ×1