我认为这并不难,但我想用String.replaceAll删除所有空行(或者只包含Java中的空格和制表符的行).
我的正则表达式如下:
s = s.replaceAll ("^[ |\t]*\n$", "");
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我环顾四周,但只找到了正则表达式,用于删除没有空格或标签的空行.
我想在运行时按下按钮时向我的JFrame添加一些新组件.这工作到目前为止,但我必须手动调整窗口大小以查看新组件.
是否有可以触发的动作或调用刷新窗口的方法?任何帮助赞赏.提前致谢.
当目录中的文件数大于2.500.000时,使用NTFS和Windows 7迭代目录中所有文件的最快方法是什么?所有文件在顶级目录下都是平的.
目前我用
for root, subFolders, files in os.walk(rootdir):
for file in files:
f = os.path.join(root,file)
with open(f) as cf:
[...]
Run Code Online (Sandbox Code Playgroud)
但它非常慢.该过程已运行大约一个小时,仍然没有处理单个文件,但仍然以每秒大约2kB的内存使用量增长.
我已经制作了一个小型API Bundle和一个应该使用API的服务包.
在我的maven pom.xml文件中,我在正确的版本中添加了对我的api包的依赖,如下所示:
<dependency>
<groupId>at.foobar.osgi.api</groupId>
<artifactId>foobarapi</artifactId>
<version>1.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我正在使用maven-bundle插件来创建捆绑包,因为我mvn clean install
以前用jar文件创建.Manifest看起来像这样(服务):
Manifest-Version: 1.0
Private-Package: at.foobar.osgi.producer
Built-By: foobar
Tool: Bnd-0.0.238
Bundle-Name: foobarproducer
Created-By: Apache Maven Bundle Plugin
Bundle-Version: 1.0
Build-Jdk: 1.6.0_26
Bnd-LastModified: 1332185439257
Bundle-ManifestVersion: 2
Bundle-Activator: at.foobar.osgi.producer.Activator
Import-Package: at.foobar.osgi.api,org.osgi.framework;version="1.4"
Bundle-SymbolicName: at.foobar.osgi.producer.foobarproducer
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎没问题.进口就在那里,所以一切都应该没问题.
现在我启动了equinox并安装了API和生产者包.然后我启动API,这很好.但是,当我想启动Producer服务时,我收到此错误:
org.osgi.framework.BundleException: The bundle "at.foobar.osgi.producer.foobarproducer_1.0.0 [4]" could not be resolved. Reason: Missing Constraint: Import-Package: at.foobar.osgi.api; version="0.0.0"
Run Code Online (Sandbox Code Playgroud)
看来框架找不到api,但是它的安装和启动?
是否有可能将自动意图发送到模拟器内的应用程序进行测试?
我有一个我所有意图的列表,我想自动测试它们,所以可以只在一个设备adb shell <myfancycommand> android.intent.action.PACKAGE_ADDED
上启动android.intent.action.PACKAGE_ADDED
操作吗?或者我是否必须编写一个脚本来自己调用所有的东西,所以例如为此意图在设备上安装一个虚拟apk?
是否有任何更短的形式用于以十六进制打印字符串
uint8_t *m = string;
int c = sizeof(string);
while(c--){
printf("%02x ", *(m++));
}
Run Code Online (Sandbox Code Playgroud) 是否可以知道创建文件的位置
ApplicationContext.openFileOutput(filename, Context.MODE_WORLD_READABLE);
Run Code Online (Sandbox Code Playgroud)
得到存储?我不需要任何java代码来打印我的路径,应该是getFileStreamPath(filename)
,我只需要这些文件的默认存储位置.我没有在android的javadoc中找到任何有用的东西
我对git-svn有一个大问题:我需要将我的git repo推送到svn服务器,所以我做了以下
svn mkdir --parents http://host/path/to/repo/{trunk,tags,branches} \
-m "Standard layout for $project"
git svn init -s http://host/path/to/repo/
git svn fetch
git rebase trunk master
git svn dcommit
Run Code Online (Sandbox Code Playgroud)
这很好用,一切都在git和svn上!
现在我得到的消息是我的git master分支在origin/master之后是31次提交,所以我做了一个git pull.现在我在我的仓库中更改了一些东西(基本上是一个eclipse java项目)并提交了它.现在我也想在svn repo上推它并制作一个git svn dcommit但是那不起作用:
Committing to https://..../trunk ...
No changes
38b194cb2860b8bb73924cb05f9830dbdb70cf82~1 == 38b194cb2860b8bb73924cb05f9830dbdb70cf82
No changes between current HEAD and refs/remotes/trunk
Resetting to the latest refs/remotes/trunk
Unstaged changes after reset:
M Product/Abgabe.tex
Unable to extract revision information from commit daf483ad1333f3589386b87054f4c27fb7ff23cf~1
Run Code Online (Sandbox Code Playgroud)
我做错了什么?主人现在重置为提交之前,现在我需要git checkout -- Abgabe.tex
并git pull
在这里拥有正确的版本......
编辑:如果我做了 …
是否有可能编写匹配[a-zA-Z]{2,4}
但不适用于该单词的正则表达式test
?或者我需要在几个步骤中过滤这个?
假设你有一个可以返回某个对象的函数或者没有:
def foobar(arg):
if arg == 'foo':
return None
else:
return 'bar'
Run Code Online (Sandbox Code Playgroud)
现在你调用这个方法,你想对对象做一些事情,对于这个例子,我得到一个str
,所以我可能想调用该upper()
函数.现在有两种情况可能发生,第二种情况会失败,因为None没有方法upper()
foobar('sdfsdgf').upper()
foobar('foo').upper()
Run Code Online (Sandbox Code Playgroud)
当然这很容易解决:
tmp = foobar('foo')
if tmp is not None:
tmp.upper()
# or
try:
foobar('foo').upper()
except ArgumentError:
pass
# or
caller = lambda x: x.upper() if type(x) is str else None
caller(foobar('foo'))
Run Code Online (Sandbox Code Playgroud)
但是异常处理可能不够具体,我可能会发现一个可能很重要的异常(=调试变得更难),而第一种方法很好但可以产生更大的代码而第三种选择看起来很不错但是你必须为所有可能的功能做到这一点,所以方法一可能是最好的.
我想知道是否有任何语法糖可以很好地处理这个问题?