如何File在内存中创建新的(来自java.io) - 而不是在硬盘上?
我正在使用Java语言.我不想将文件保存在硬盘上.
我遇到了糟糕的API(java.util.jar.JarFile).它期待String文件名的File文件.我没有文件(只有byte []内容)并且可以创建临时文件,但它不是很漂亮的解决方案.我需要验证签名jar的摘要.
byte[] content = getContent();
File tempFile = File.createTempFile("tmp", ".tmp");
FileOutputStream fos = new FileOutputStream(tempFile);
fos.write(archiveContent);
JarFile jarFile = new JarFile(tempFile);
Manifest manifest = jarFile.getManifest();
Run Code Online (Sandbox Code Playgroud)
任何有关如何在没有临时文件的情况下获得清单的示例将不胜感激.
我想现在这个问题不是偏离主题的
有没有比这更好的方法将MatchCollection转换为字符串数组?
MatchCollection mc = Regex.Matches(strText, @"\b[A-Za-z-']+\b");
string[] strArray = new string[mc.Count];
for (int i = 0; i < mc.Count;i++ )
{
strArray[i] = mc[i].Groups[0].Value;
}
Run Code Online (Sandbox Code Playgroud)
PS:mc.CopyTo(strArray,0)抛出异常:
源数组中至少有一个元素无法转换为目标数组类型.
在Angular2中,如何屏蔽输入字段(文本框),使其仅接受数字而不接受字母?
我有以下HTML输入:
<input
type="text"
*ngSwitchDefault
class="form-control"
(change)="onInputChange()"
[(ngModel)]="config.Value"
(focus)="handleFocus($event)"
(blur)="handleBlur($event)"
/>
Run Code Online (Sandbox Code Playgroud)
上面的输入是通用文本输入,可以用作简单文本字段或数字字段(例如显示年份).
使用angular2,我如何使用相同的输入控件并在此字段上应用某种过滤器/蒙版,这样它只接受数字?我可以通过哪些不同方式实现这一目标?
注意:我需要仅使用文本框而不使用输入数字类型来实现此目的.
我最近在尝试使用.sort()和对自引用列表进行排序时遇到了一个奇怪的差异sorted()。我希望有人能对此有所了解。有问题的代码如下:
lst = [1, 2, 3]
lst[0] = lst
lst[1] = lst
lst[2] = lst
print(lst)
print(sorted(lst))
lst.sort()
print(lst)
Run Code Online (Sandbox Code Playgroud)
上面的代码产生以下输出:
[[...], [...], [...]]
[[[...], [...], [...]], [[...], [...], [...]], [[...], [...], [...]]]
[[...], [...], [...]]
Run Code Online (Sandbox Code Playgroud)
它的输出print(sorted(lst))让我感到困惑。想知道是否是某种形式的递归导致了它?
我已经编写了一个验证类,并希望将其包含在我的 VueJS 3 项目中。不幸的是我收到以下错误:SyntaxError: ambiguous indirect export: default
这是我的代码:
// ..classes/formValidationClass.js
export class FormValidator {
...
}
// some vue file with a form
import FormValidation from "..classes/formValidationClass"
export default {...}
Run Code Online (Sandbox Code Playgroud)
此错误是什么意思?我需要做什么来纠正该错误?
我正在测试一个包含徽标的网站,并且我想确保该徽标不会出现在某些页面上。
如何断言某个元素不存在?我检查了剧作家断言文档,但它只有检查确实存在的事情的示例。
async assertNoLog(): Promise<boolean> {
await this.page.locator('div#page-id'); // now the page has loaded
// How do I check if logo is on page without throwing an error if it is missing
}
Run Code Online (Sandbox Code Playgroud)
我不知道在这里写什么来断言页面上的任何地方都找不到我的元素。
在Java中,我有一个带有这些值的arraylist(很多行,这只是一个提取)
20/03/2013 23:31:46 6870 6810 6800 6720 6860 6670 6700 6650 6750 6830 34864 34272 20/03/2013 23:31:46 6910 6780 6800 6720 6860 6680 6620 6690 6760 6790 35072 34496
前两个值是包含数据并存储在单个元素中的字符串.
我想要做的是比较字符串数据元素和删除例如第二个和引用该行的所有元素.
现在,我使用了一个for循环,每13个元素比较字符串(为了只比较数据字符串)
我的问题:我能实施其他更好的解决方案吗?
这是我的代码:
20/03/2013 23:31:46 6870 6810 6800 6720 6860 6670 6700 6650 6750 6830 34864 34272
20/03/2013 23:31:46 6910 6780 6800 6720 6860 6680 6620 6690 6760 6790 35072 34496
Run Code Online (Sandbox Code Playgroud) 我不能传递#以命令行参数开头的字符串。
这是一个简单的测试:
#include <stdio.h>
int main(int argc, char *argv[])
{
for (int i = 1; i < argc; i++)
printf("%s ", argv[i]);
putchar('\n');
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我输入参数如下:
2 4 # 5 6
Run Code Online (Sandbox Code Playgroud)
argcis 3和not 的值6。它会#在此处读取并停止。我不知道为什么,在C语言和C Primer Plus的副本中也找不到答案。
我在更新 Angular 版本时遇到问题。当我使用时ng update,我得到以下输出:
Name Version Command to update
----------------------------------------------------------------------------------------
@angular/cdk 12.1.2 -> 12.2.0 ng update @angular/cdk
@angular/cli 12.1.2 -> 12.2.0 ng update @angular/cli
@angular/core 12.1.2 -> 12.2.0 ng update @angular/core
@angular/material 12.1.2 -> 12.2.0 ng update @angular/material
Run Code Online (Sandbox Code Playgroud)
之后我尝试使用以下命令更新所有四个:
ng update @angular/cdk @angular/cli @angular/core @angular/material -C
Run Code Online (Sandbox Code Playgroud)
更新package.json后npm i运行以安装所有软件包。这里我遇到了以下错误:
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! Found: @angular-devkit/build-angular@12.1.2
npm ERR! node_modules/@angular-devkit/build-angular
npm ERR! dev @angular-devkit/build-angular@"^12.2.0" from …Run Code Online (Sandbox Code Playgroud) 给定长度为N的字符串S,返回一个字符串,该字符串是将'?'字符串S中的每个字符替换为一个'a'或一个'b'字符的结果,并且不包含三个相同的连续字母(换句话说,处理后的字符串中'aaa'不可能'bbb'出现这两个字母)。
例子:
Given S="a?bb", output= "aabb"
Given S="??abb", output= "ababb" or "bbabb" or "baabb"
Given S="a?b?aa", output= "aabbaa"
Run Code Online (Sandbox Code Playgroud)
1<=n<=500000
我使用回溯解决了这个问题,但是我的解决方案很慢并且不适用于更大的 N 值,有更好的方法吗?