小编naf*_*fas的帖子

Java Set <String>相等忽略大小写

我想通过忽略字母的情况来检查两组String的所有元素是否相等.

Set<String> set1 ;
Set<String> set2 ;
.
.
.
if(set1.equals(set2)){ //all elements of set1 are equal to set2 
 //dosomething
}
else{
 //do something else
}
Run Code Online (Sandbox Code Playgroud)

但是,此等式检查不会忽略字符串的情况.还有其他方法吗?

java set ignore-case

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

如何将拉丁语unicode字符替换为[az]字符

我正在尝试将所有拉丁语unicode字符转换为它们的[a-z]表示形式

ó --> o
í --> i
Run Code Online (Sandbox Code Playgroud)

我可以轻松地逐一进行,例如:

myString = myString.replaceAll("ó","o");
Run Code Online (Sandbox Code Playgroud)

但由于存在大量的变化,这种方法是不切实际的

有没有其他方式在Java中这样做?例如a regular Expression或autility library

使用案例:

1-城市名称从其他语言到英语,例如

EspíritoSanto - > Espirito Santo,

java regex string unicode normalization

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

根据相似性对字符串进行排序

考虑以下字符串:

  • 你好
  • 再见
  • 你好
  • =(再见)
  • (你好)
  • 再见

我知道,我正试图以这样的方式对这些词进行排序,以至于类似的词汇汇集在一起

  1. alphanumerical sorting 不是一种选择
  2. 删除特殊字符",-_ and etc然后比较肯定是有帮助的,但结果将不如我希望的那么好.

注意 :

可能没有多少不同的期望输出,其中一个是:

期望的输出:

  1. 你好
  2. 你好
  3. (你好)
  4. 再见
  5. 再见
  6. =(再见)

所以我的问题是,如果有一个java包比较字符串并最终根据它进行排序.

我听说过这样的术语n-gram,skip-gram但并不完全理解它们.我甚至不确定它们是否对我有用.

更新:找到相似之处肯定是我的问题的一部分,但主要问题是排序部分.

java sorting string-comparison

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

如何替换多个匹配的正则表达式

我有一组正则表达式替换需要应用于一组字符串,

例如:

  1. 所有多个空格都带有单个空格("\s{2,}" --> " ")
  2. 全部 。后跟一个 char 。后跟空格,后跟字符 (\.([a-zA-Z]-->". $1")

所以我会有这样的东西:

String s="hello     .how are you?";
s=s.replaceAll("\\s{2,}"," ");
s=s.replaceAll("\\.([a-zA-Z])",". $1");
....
Run Code Online (Sandbox Code Playgroud)

它可以工作,但是想象一下我正在尝试替换一个长字符串上的 100 多个这样的表达式。不用说这有多慢。

所以我的问题是是否有一种更有效的方法来使用单个replaceAll(或类似的东西,例如模式/匹配器)来概括这些替换

我已经按照Java替换了多个不同的...

但问题是我的正则表达式不是simple Strings

java regex string

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

使用selenium进行爬网:如何在java中关闭驱动程序后保持登录状态

无论如何,那司机能记住logged in session,所以它不会带我回到Login页面(例如喜欢google-chrome)吗?

这就是我现在正在做的事情

public static void main(String[] args) throws Exception {

    driver = new ChromeDriver();
    driver.get("http://localhost/interestingStuff);  //I get redirected to login page 

    login(); //logins in to the page and submits(note I try to omit this part if possible).
    doStuff();

    driver.close(); //I want to be able to keep session next time I start this program.


}
Run Code Online (Sandbox Code Playgroud)

java selenium selenium-webdriver

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

JsonArray.getvaluesAs不将String.class作为参数

我正在使用javax.Json.JsonArray对象.

方法:javax.Json.JsonArray.getvaluesAs(Class<T>)返回JsonArrayas List.所以我想做的就是List进入一个Set.这就是我做的:

Set values= new HashSet(myjsonArray.getValuesAs(null));
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我知道myjsonArray只包含String.所以我真正想做的是:

Set<String> values= new HashSet(myjsonArray.getValuesAs(String.class));
Run Code Online (Sandbox Code Playgroud)

由于某些原因上面的代码我得到编译器错误:

The generic method getValuesAs(Class<T>) of type JsonArray is not applicable for the arguments (Class<String>). The inferred type String is not a valid substitute for the bounded parameter <T extends JsonValue>
Run Code Online (Sandbox Code Playgroud)

我可以Set<String>使用我的内置循环,但我尽量避免这种情况,因此上面的错误有一个简单的解决方法吗?

java arrays json

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

将url保存为python中的文件名

首先,我是python中的新手,如果您考虑投票,请发表评论

我有一个网址,如

http://example.com/here/there/index.html
Run Code Online (Sandbox Code Playgroud)

现在我想将文件及其内容保存在目录中.我希望文件的名称是:

http://example.com/here/there/index.html
Run Code Online (Sandbox Code Playgroud)

但我得到错误,我猜这个错误是/ 在url名称中的结果.

这就是我现在正在做的事情.

        with open('~/' + response.url, 'w') as f:
            f.write(response.body)
Run Code Online (Sandbox Code Playgroud)

任何想法我应该怎么做呢?

python

2
推荐指数
3
解决办法
3911
查看次数

我的"for循环"的问题 - Java

我一直在尝试创建一个for loop打印任意两个输入之间的所有整数integers.

例如:

如果我输入1和4,它应该打印1,2,3,4.

但是,我当前的代码只打印最终输入.(标记为"结束"的那个)

什么可以用我的代码?请注意,if语句会检查以确保输入有效.

{
    int start = Integer.parseInt(startingInput.getText());
    int end = Integer.parseInt(endingInput.getText());

    if (start >= end) {
       hintLabel.setText("Please input valid numbers"); 
    }
    else {
        for (int count = start; count <= end; count++) {
            outputArea.setText(count + ", ");
        }
    }
}                                           
Run Code Online (Sandbox Code Playgroud)

java for-loop

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

如何有效地获取目录中的(某些)文件名

我有一个包含20M +文件的目录.如果我试试

folder.list();
Run Code Online (Sandbox Code Playgroud)

获取文件大约需要5~10分钟(有时甚至更多).我不需要所有的文件名,每次只需要少数几个.

在Linux中如果我尝试:

  • ls -l | head -n 100:这将永远
  • ls -f | head -n 100:响应在几秒钟内获得.

因此,如果我使用ProcessBuilder并运行类似的东西,我可以快速列出文件ls -f | head -n 100

是否有本地方式在目录中列出固定数量的文件而无需使用ProcessBuilder

java file-listing

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

selenium中的WebElement选择attr

我喜欢使用seleniumin 在页面中选择此标记java

<input class="btn btn-success addReportBtn" type="submit" />
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所尝试的:

driver.findElement(By.xpath("//input[type=submit]"));
driver.findElement(By.cssSelector("//input[@type='submit']"));
Run Code Online (Sandbox Code Playgroud)

我分别得到了这两个例外:

org.openqa.selenium.NoSuchElementException:没有这样的元素:无法定位元素:{"method":"xpath","selector":"input [type = submit]"}

org.openqa.selenium.InvalidSelectorException:无效的选择器:指定了无效或非法的选择器

如果我使用Jsoup我可以通过以下方式轻松实现:

System.out.println(document.select("input[type=submit]"));
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

java selenium xpath css-selectors

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

使用URL中的#作为值键

我的java服务器的工作原理如下:

http://locahost:5555/?search="java"
Run Code Online (Sandbox Code Playgroud)

上面的链接可以正常工作.但是,如果我想使用"#"作为搜索字符串的一部分,那一切都会出错.例如:

http://locahost:5555/?search="c#"
Run Code Online (Sandbox Code Playgroud)

出于某种原因,"#"之后的所有内容都会被忽略 如果我使用"#"的解码版本,它再次正常工作.例如:

http://locahost:5555/?search="c%23"
Run Code Online (Sandbox Code Playgroud)

该系统应该由不了解url编码的人使用,因此他们永远不会将%23而不是#.不管怎么说呢?

java url java-server

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

如何检查电子邮件地址是否有效?

以下是我正在使用的代码:

它总是给我输出"无效的电子邮件地址"

BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
String name="";
do
{
    System.out.println("Email:");
    String email= br.readLine();
    if(!name.matches("^[a-zA-Z0-9]+@[a-zA-Z0-9]+(.[a-zA-Z]{2,})$"))
    System.out.println("Invalid email address");
    else
        break;  
}while(true);
Run Code Online (Sandbox Code Playgroud)

java

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