小编Mar*_*ark的帖子

如何替换Java String中的一组标记?

我有以下模板字符串:"Hello [Name] Please find attached [Invoice Number] which is due on [Due Date]".

我还有名称,发票号和截止日期的字符串变量 - 用变量替换模板中的标记的最佳方法是什么?

(请注意,如果变量恰好包含令牌,则不应替换它).


编辑

感谢@laginimaineb和@ alan-moore,这是我的解决方案:

public static String replaceTokens(String text, 
                                   Map<String, String> replacements) {
    Pattern pattern = Pattern.compile("\\[(.+?)\\]");
    Matcher matcher = pattern.matcher(text);
    StringBuffer buffer = new StringBuffer();

    while (matcher.find()) {
        String replacement = replacements.get(matcher.group(1));
        if (replacement != null) {
            // matcher.appendReplacement(buffer, replacement);
            // see comment 
            matcher.appendReplacement(buffer, "");
            buffer.append(replacement);
        }
    }
    matcher.appendTail(buffer);
    return buffer.toString();
}
Run Code Online (Sandbox Code Playgroud)

java regex templates

106
推荐指数
9
解决办法
13万
查看次数

Google'Omaha'(他们的Chrome自动更新引擎)的体验是什么?

Google已将谷歌Chrome中使用的自动更新机制开源为奥马哈.

对于任何不是谷歌的人来说,配置似乎相当复杂和困难.在项目中使用奥马哈的经验是什么?可以推荐吗?

google-chrome auto-update

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

如何正确地在Java中从CMYK转换为RGB?

我将用于将CMYK jpeg转换为RGB的Java代码导致输出图像太亮 - 请参阅下面的代码.任何人都可以建议正确的转换方式吗?

以下代码需要Java Advanced Image IO来读取jpeg和example-cmyk.jpg

import java.awt.image.BufferedImage;
import java.awt.image.ColorConvertOp;
import java.io.File;

import javax.imageio.ImageIO;

public class TestCmykToRgb {

    public static void main(String[] args) throws Exception {
        BufferedImage cmykImage = ImageIO.read(new File(
                "j:\\temp\\example-cmyk.jpg"));


        BufferedImage rgbImage = new BufferedImage(cmykImage.getWidth(),
                cmykImage.getHeight(), BufferedImage.TYPE_INT_RGB);

        ColorConvertOp op = new ColorConvertOp(null);
        op.filter(cmykImage, rgbImage);

        ImageIO.write(rgbImage, "JPEG", new File("j:\\temp\\example-rgb.jpg"));

    }
}
Run Code Online (Sandbox Code Playgroud)

java cmyk

22
推荐指数
3
解决办法
3万
查看次数

最小的Java运行时我可以合法分发吗?

我的Java SWT桌面应用程序与它自己的Java运行时一起分发,我想让下载大小尽可能小.我想从rt.jar中删除我不使用的所有类,但根据JDK运行时许可证这是禁止的(请参阅根JDK文件夹中的README.html文件).

由于Java是开源的,我是否允许从源代码编译我自己的"Java"运行时没有这种分发限制?如果是这样,有没有人这样做过?(或者你只是忽略JDK许可条款?)

java licensing

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

如何确保我的CustomPaint小部件绘画存储在栅格缓存中?

我有一个应用程序,在用户触摸屏幕的位置显示一个黑点,如下所示:

在此输入图像描述

当用户将他的手指拖到屏幕上时,用户可以移动黑点.

背景是一个昂贵的绘制操作,所以我在堆栈中创建了两个单独的小部件,希望背景小部件绘画将存储在Flutter栅格缓存中.但它没有存储 - 每当黑点移动时,Flutter就会调用我昂贵的绘画方法.

我究竟做错了什么?

这是我的代码:

import 'package:flutter/material.dart';
import 'dart:math';

void main() {
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      home: new MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  State createState() => new MyHomePageState();
}

class MyHomePageState extends State<MyHomePage> {
  GlobalKey _paintKey = new GlobalKey();
  Offset _offset;

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      body: new Stack(
        fit: StackFit.expand,
        children: <Widget>[
          new CustomPaint(
            painter: new ExpensivePainter(), …
Run Code Online (Sandbox Code Playgroud)

flutter

11
推荐指数
1
解决办法
2494
查看次数

使用applescript在Outlook中创建带附件的邮件

我正在尝试在Microsoft Outloook 15.6版中打开一个新的消息窗口并填充包括附件在内的字段.这是我的动作代码:

tell application "Microsoft Outlook"
    set newMessage to make new outgoing message with properties {subject:"Hooray for automation"}
    make new recipient at newMessage with properties {email address:{name:"Jim Shank", address:"jim.shank@example.com"}}
make new attachment at the end of newMessage with properties {file:"/tmp/Invoice INV2 - Paul.pdf"}
    open newMessage
end tell
Run Code Online (Sandbox Code Playgroud)

(此消息源自此堆栈溢出问题).

但是,我收到此错误:256:398:执行错误:Microsoft Outlook出错:保存更改的记录属性时出错.(-2700)

是否可以使用actionscript在最新版本的Outlook中打开新邮件?

outlook actionscript

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

如何根据密码在Java中创建密钥对?

我想允许Alice创建公钥/私钥对,以便Bob可以发送她的机密消息.但是,我希望Alice能够从任何地方检查她的消息,并且她必须携带包含她的私钥的记忆棒是一件痛苦的事.Alice是否有某种方法可以根据她记得的密码创建公钥/私钥对?通过这种方式,她可以随时生成私钥(和公钥).

这个问题的简短版本是:我在哪里可以找到cryptico.js的Java等价物.

另外,这是关于Stack Overflow 的相同问题,但是对于javascript.

编辑:这是我第一次尝试解决方案:

    SecureRandom saltRand = new SecureRandom(new byte[] { 1, 2, 3, 4 });
    byte[] salt = new byte[16];
    saltRand.nextBytes(salt);

    int keyLength = 3248;
    SecretKeyFactory factory = SecretKeyFactory
            .getInstance("PBKDF2WithHmacSHA1");
    KeySpec spec = new PBEKeySpec(password.toCharArray(), salt, 8192, keyLength);
    SecretKey key = factory.generateSecret(spec);

    SecureRandom keyGenRand = SecureRandom.getInstance("SHA1PRNG");
    keyGenRand.setSeed(key.getEncoded());

    KeyPairGenerator gen = KeyPairGenerator.getInstance("RSA");
    gen.initialize(keyLength, keyGenRand);
    java.security.KeyPair p = gen.generateKeyPair();
Run Code Online (Sandbox Code Playgroud)

java encryption

7
推荐指数
2
解决办法
5728
查看次数

显示文本字段对话框而不被键盘覆盖?

我正在尝试创建一个SimpleDialog允许用户输入其名称的内容.但是当它显示时,对话框被屏幕键盘隐藏了一半:

截图

如何Dialog让它完全可见?

编辑:我觉得奇怪的是,主页小部件(FocusVisibilityDemo)识别出降低的高度,因此调整"推送我"按钮的位置以保持在中心.不幸的是,对话框的行为方式不同.

这是我的代码:

import 'package:flutter/material.dart';

class FocusVisibilityDemo extends StatefulWidget {
  @override
  _FocusVisibilityDemoState createState() => new _FocusVisibilityDemoState();
}

class _FocusVisibilityDemoState extends State<FocusVisibilityDemo> {
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(title: new Text('Text Dialog Demo')),
      body: new Center(
        child: new RaisedButton(
          onPressed: _showDialog,
          child: new Text("Push Me"),
        ),
      ),
    );
  }

  _showDialog() async {
    await showDialog<String>(
      context: context,
      child: new AlertDialog(
        contentPadding: const EdgeInsets.all(16.0),
        content: new Row(
          children: <Widget>[
            new Expanded(
              child: new …
Run Code Online (Sandbox Code Playgroud)

dart flutter

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

如何在 dart 中异步提取 zip 文件存档?

我正在使用存档包来扩展 zip 文件,如下所示:

  final bytes = new File(zippedFile).readAsBytesSync();
  final archive = new ZipDecoder().decodeBytes(bytes);

  for (var file in archive) {
    final filename = '/Users/mark/blah/${file.name}';
    if (file.isFile) {
      var outFile = new File(filename);
      outFile = await outFile.create(recursive: true);
      await outFile.writeAsBytes(file.content);
    } else {
      await new Directory(filename)
          .create(recursive: true);
    }
  }
Run Code Online (Sandbox Code Playgroud)

问题是我在 Flutter 中的 UI 线程不时挂起,导致 CircularProgressIndicator 出现卡顿 - 我怀疑问题出在对 file.content 的调用上。如何在不阻塞 UI 线程的情况下调用它?我需要使用隔离吗?

dart

7
推荐指数
1
解决办法
5759
查看次数

如何在Mac OS X上创建"源列表"?

Apple指南谈到使用源列表 - 如何在Carbon或Cocoa中创建此源列表?这个组件的某个地方是否有官方API?

macos

6
推荐指数
1
解决办法
5055
查看次数