小编Joã*_*lva的帖子

如何将字节转换为二进制字符串表示形式

例如,一个字节B中的位是10000010,如何将字符串分配给字符串str,即str = "10000010".

编辑

我从二进制文件中读取字节,并存储在字节数组中B.我用System.out.println(Integer.toBinaryString(B[i])).问题是

(a)当位以(最左边)1开始时,输出不正确,因为它转换B[i]为负的int值.

(b)如果位开头0,则输出忽略0,例如,假设B[0]为00000001,1而不是输出00000001

java binary byte

84
推荐指数
5
解决办法
17万
查看次数

在Java中将RSS pubDate解析为Date对象

如何将pubDate从RSS提要解析为java中的Date对象.

RSS提要中的格式:星期六,2010年4月24日14:01:00 GMT

我现在所拥有的:

DateFormat dateFormat = DateFormat.getInstance();
Date pubDate = dateFormat.parse(item.getPubDate().getText());
Run Code Online (Sandbox Code Playgroud)

但是这段代码抛出了一个带有Unparseable date消息的ParseException

java rss date date-format

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

Java Base API中最具误导性的方法是什么?

boolean当方法boolean Boolean.getBoolean(String name)弹出自动完成窗口时,我最近尝试将字符串文字转换为a .之后还boolean Boolean.parseBoolean(String s)出现了另一种方法(),这使我找到了解这两者之间的差异,因为他们似乎都做了同样的事情.

事实证明,Boolean.getBoolean(String name)真正做的是检查是否存在System给定名称的属性(!)以及它的值是否为true.我认为这是非常误导的,因为我绝对没想到一个方法Boolean实际上正在调用System.getProperty,只是通过查看方法签名,它肯定看起来(至少对我来说)它应该用来解析一个String作为boolean.当然,javadoc清楚地说明了这一点,但我仍然认为该方法有一个误导性的名称,并且它不在正确的位置.其他原始类型的包装器,Integer也有类似的方法.

此外,它似乎不是一个非常有用的方法属于基础API,因为我认为有类似的东西并不常见-Darg=true.对于Java职位面试来说,这可能是一个很好的问题:"输出是Boolean.getBoolean("true")什么?".我相信这些方法更合适的地方就是在System课堂上,例如getPropertyAsBoolean; 但同样,我仍然认为在基础API中使用这些方法是不必要的.将它们放在类似于Properties类的东西中是有意义的,这种类型的转换很常见.

你觉得这一切怎么样?此外,如果你知道另一个"尴尬"的方法,请发布它.

NB我知道我可以使用Boolean.valueOfBoolean.parseBoolean将字符串文字转换为a boolean,但我只是想讨论API设计.

java methods naming-conventions

36
推荐指数
12
解决办法
3165
查看次数

替换java.util.Date(年,月,日)的可接受方式是什么

我正在尝试做一些非常简单的事情,但是开始意识到Java中的日期有点像雷区.我想要的是通过三个整数组(一年,一个月和一个日期)创建一些Date对象,对它们做一些简单的测试(沿着日期B之前的日期B和1990年1月1日之后的行),转换它们java.sql.Date通过JDBC传递给对象并传递给数据库.

一切都非常简单,使用java.util.Date(int year,int month,int day)构造函数工作正常.当然这个构造函数是折旧的,我想避免在我写的新代码中使用折旧调用.然而,解决这个简单问题的所有其他选项似乎都很愚蠢.没有使用折旧的构造函数,真的没有简单的方法可以做我想做的事情吗?

我知道所有Java日期相关问题的标准答案是"使用joda时间",但我真的不想开始在第三方库中找到这样一个看似微不足道的问题.

java calendar date

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

Java 7 - 多行字符串

我已经读过,建议在Java 7中添加多行字符串文字.

虽然我找不到任何文件肯定说他们已经.我想知道它们是否是,因为这是我考虑切换版本的东西.

java multilinestring java-7

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

Java应用程序的Web用户界面

我正在尝试为Java应用程序创建Web用户界面.用户界面非常简单,包括一个页面,其中包含一个供用户提出查询的表单,以及一个结果页面 - 有点像Google的搜索引擎或Ask.com.

我对Java的基本API非常熟悉,但是我没有太多使用Java进行Web环境的经验(尽管我使用过ASP.NET),所以我正在寻找一些建议:

  • 我应该使用什么Web应用程序服务器请注意,我的界面非常轻,我只想要一些快速,易于启动/重置/停止和(重新)部署我的应用程序的东西.此外,我需要它在多种环境中工作,即GNU/Linux,Mac OS X和Windows XP/Vista.此外,我使用的antEclipse,所以这将是巨大的,如果我可以轻松地添加一些ant目标服务器的管理,和/或使用IDE管理服务器.我已经研究过TomcatJetty,后者看起来非常轻巧,易于安装和部署.这是理想的,因为GUI仅用于演示目的,我可能需要将其部署在不同的计算机中.然而,Tomcat已经存在了很长时间,而且似乎更成熟.

  • 至于网页,Java Server Pages看起来很合适,因为它们看起来非常简单,我正在努力完成(处理表单并输出结果),但我很满意建议.

  • 我还有另一个要求,这需要我解释应用程序的"基本"工作流程:基本上,我有一个类Engine,它有一个方法run(String),它将处理用户的输入并返回结果显示.这个类是应用程序的核心.现在,我只想将这个类实例化一次,因为它需要大量内存,并且需要很长时间才能启动,所以我想在应用程序/服务器启动时创建它,并存储该引用应用程序的整个范围(即,直到我停止服务器).然后,对于每个用户请求,我只需调用实例的run方法Engine,并显示其结果.如何用Java实现这一目标?

java jsp tomcat jetty application-server

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

grep egrep多字符串

假设我有几个字符串:str1和str2以及str3.

  • 如何找到包含所有字符串的行?
  • 如何查找可以拥有其中任何一行的行?
  • 以及如何找到具有str1以及str2和str3之一的行[ 但不是两者都有?]?

regex grep

14
推荐指数
4
解决办法
6万
查看次数

加载属性的最佳策略是什么?

我有几个类需要加载一些属性文件,我想知道实现这一目标的最佳实践是什么.我想到了两种基本方法:

  • 对每个类中的属性文件名进行硬编码,然后使用Properties该类从a加载FileInputStream,如果有人决定更改属性文件的名称,则可能会出现问题,因为它在代码中是硬编码的.

    public class A {
        public A() {
            Properties p = new Properties().load(
                    new FileInputStream("properties/Aconfig.properties"));
            String value = p.getProperty("key", "");
        }        
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 创建一个方法,给定一个类名,加载一个与该类同名的属性文件.虽然这种方法不需要对属性文件名进行硬编码,但它确实要求我们在命名文件时遵循一些约定,这可能会引起混淆.

    public class A {
        public A() {
            Properties p = PropertiesHelper.loadFromClassName(A.class.getName());
            // here, we **assume** that there is a A.properties file in the classpath.
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

但是,可能还有许多其他更优雅的方法,这就是我提出这些问题的原因:i)在Java中加载属性文件的最佳实践是什么?ii)你是否使用任何照顾工作的帮助班?iii)在哪里(在代码中)你通常加载属性文件?

另外,类可以"自动加载"其属性吗?或者我应该将我需要的参数传递给构造函数?传递参数的问题在于,某些类(~20,表示统计模型中的参数)的方法太多了.

java properties

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

字符串平铺算法

我正在寻找一种有效的算法来进行字符串平铺.基本上,你给出一个字符串列表,比如BCD,CDE,ABC,A,产生的瓷砖字符串应该是ABCDE,因为BCD与对齐CDE屈服BCDE,然后将其与对齐ABC得到最终ABCDE.

目前,我使用的是一种略显天真的算法,其工作原理如下.用随机对字符串的开始,说BCDCDE,我用下面的(在Java中):

public static String tile(String first, String second) {
  for (int i = 0; i < first.length() || i < second.length(); i++) {
    // "right" tile (e.g., "BCD" and "CDE")
    String firstTile = first.substring(i);
    // "left" tile (e.g., "CDE" and "BCD")  
    String secondTile = second.substring(i);
    if (second.contains(firstTile)) {
      return first.substring(0, i) …
Run Code Online (Sandbox Code Playgroud)

string algorithm tiling

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

Java文件锁定

我有几个线程(其中一些由Process X生成,其他由Process Y生成,等等),每个线程都需要写入一个文件MyFile.但是,如果Thread T1开始写MyFile第一,那么,当Thread T2开始写,需要等待T1释放文件,以便它可以读取写在该内容Thread T1.换句话说,每个线程都有一个finalizeThread方法,如下所示:

private void finalizeThread() {
    File f = new File("MyFile.dat");
    f.createNewFile();  // atomically creates the file, if it doesn't exist
    locked_section {
        readContentsFromFile(f); // read contents if some other thread already modified the file
        modifyContentsFromFile(f); // modify
        writeFile(f); // write, so that new threads can see the content modified by this thread
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何locked_section在上面的代码中完成?我正在研究这个 …

java locking

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