小编Mik*_*uel的帖子

正则表达式替换(")与(\")?

为什么以下不起作用:

      String test = "hello\"world".replaceAll("\"", "\\\"");
      System.out.println(test);
Run Code Online (Sandbox Code Playgroud)

我正在试图做的是更换出现的任何"\".

所以我想得到输出:

hello\"world
Run Code Online (Sandbox Code Playgroud)

java regex

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

两个字符串列表的交集

我有一个面试问题:

给定两个无序客户列表,返回两个列表的交集列表.也就是说,返回两个列表中显示的客户列表.

我建立的一些事情:

  • 假设每个客户都有一个唯一的名称
  • 如果两个列表中的名称相同,则它是同一个客户
  • 名称是名字姓氏的名称
  • II,Jr,奇怪的角色等都没有诡计.

我认为重点是找到一种有效的算法/使用数据结构来尽可能高效地完成这项工作.

我的进展如下:

  • 将一个列表读入内存,然后一次读取另一个列表以查看是否匹配
  • 按字母顺序排列两个列表然后从一个列表的顶部开始,看看每个项目是否出现在另一个列表中
  • 将两个列表放入有序列表中,然后使用较短的列表逐项检查(这样,一个列表有2个项目,您只检查这2个项目)
  • 将一个列表放入哈希,并检查其他列表中是否存在键

面试官一直在问,"下一步是什么?",所以我想我错过了别的东西.

有效地做任何其他技巧?

旁注,这个问题是在python中,我只是阅读sets,似乎尽可能高效地做到这一点.知道数据结构/算法sets是什么?

python string algorithm set data-structures

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

从BNF语法中导出状态机

我试图将XSS安全字符串插值方案的概念证明放在一起.

给定一个替换字符串,

"Hello <b>$planetoid</b>!"
Run Code Online (Sandbox Code Playgroud)

我希望将其分解为字面部分和替换("Hello<b>" planetoid "</b>!"),然后在字面部分上从左到右运行状态机.当我达到内插值(planetoid在上面)时,我需要能够从状态到达适当的转义函数.

有没有人知道如何使用lex/yacc/bison来派生状态机并能够将语法中的标签与输出状态相关联?我想派生一个状态机,我可以在javascript中使用它们,并尝试替换PHP的底层字符串实现.

我这样做的原因是描述在这里.

欢呼,迈克

yacc bnf bison pushdown-automaton

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

如何制作这个简单的正则表达式?

我需要创建一个字符串的开头和结尾,字母数字范围在5到20个字符之间,字符之间可能有空格或没有空格./^[a-z\s?A-Z0-9]{5,20}$/但这不起作用.

编辑
测试测试-should通过
TESTTEST -should通
测试测试测试-should未通过

javascript regex

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

如何测试反射得到的Java字段的值是否为空?

我有

Field f = this.getClass().getFields()[0];
Run Code Online (Sandbox Code Playgroud)

我需要知道f的价值thisnull或不是.有很多像getInt()和的方法getDouble(),但我还没有找到像Object getData()或的方法isNull().有这样的方法吗?

java reflection null field

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

如何在Java上打破字符串?

我需要写入字符串ByteArrayOutputStream,但我需要用破坏来编写字符串.我试着这样做:

out.write("123".getBytes());
out.write("\n456".getBytes());
Run Code Online (Sandbox Code Playgroud)

但'\n'不起作用.请告诉我,我该如何解决?或者建议我替换OutputStream来存储字符串(这个操作系统必须允许使用断行)而不需要创建文件.谢谢.

java

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

在java代码中放入一个html链接

我是java编码的新手.我有一个可以发送邮件的应用程序,用Java实现.我想在邮件中放一个HTML链接,但是当我输入一个html链接时,它显示一个错误说; 即使一切都是正确的,也会丢失.

String msgbody = "This is a reminder mail"; 
String link = "<a href="http://abcd.efg.com" target="_blank">http://abcd.efg.com</a>"; 
msgbody = msgbody + link;
Run Code Online (Sandbox Code Playgroud)

如果我使用这样的字符串有什么问题吗?

html java

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

对于默认构造函数,不能使用Guava Optional吗?

我无法找到一个正确的方法来获得一个Guava Optional的默认构造函数参数.以下代码不能使用Java 1.6进行编译

public class ShoppingCart implements Serializable {
private final Optional<DiscountCoupon> discountCoupon;

public ShoppingCart() {
    this(Optional.absent());
}
public ShoppingCart(Optional<DiscountCoupon> dc) {
    Preconditions.checkNotNull(dc);
    if (dc.isPresent()) {
        Preconditions.checkArgument(dc.get().getPennyDiscount() != 0 || 
                        dc.get().getPercentDiscount() != 0);
    }
    discountCoupon = dc;
}
Run Code Online (Sandbox Code Playgroud)

报告的错误是:

/Users/pfarrell/sandbox//com/wayfinderdigital/struct/ShoppingCart.java:29: cannot find symbol
symbol  : constructor ShoppingCart(com.google.common.base.Optional<java.lang.Object>)
location: class com.wayfinderdigital.struct.ShoppingCart
    this(Optional.absent());
Run Code Online (Sandbox Code Playgroud)

java guava

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

java Float:== equals compareTo

我有两个问题.

1)有人告诉我,在比较两个FloatDouble数据时,请使用compareTo而不是equals.我不知道原因.是否有任何示例显示哪些使用equals会导致错误?

2)看到这段代码:

  float f2=(float)1.123450;
  Float f3=new Float(1.123450);

  System.out.println(f3==f2);   // result is true
Run Code Online (Sandbox Code Playgroud)

我认为使用==意味着两个数据指向相同的内存地址.但这样做f3f2具有相同的地址?不new Float(...)创造新的空间?

java equals compareto

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

在java中形成帮助

我怎样才能制作我的代码

class Factorial {
    public static void main(String args[]) {
        int n, c, fact = 1;  

        for ( c = 1 ; c <= 5 ; c++ ) {
            fact = fact*c;
            System.out.println(fact);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

看起来像这样

X X! 
1 1 
2 2 
3 6 
4 24 
5 120
Run Code Online (Sandbox Code Playgroud)

java

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