Tag: 字符串

由于属性必须是常量表达式错误,Java代码将无法编译

我无法弄清楚为什么以下不会编译。 IDE给我的错误是“注释属性RequestParam.defaultValue的值必须是常量表达式”。 我的项目涉及Spring和Maven,它包括以下内容: private static final String MAX_LONG_AS_STRING = Long.toString(Long.MAX_VALUE); @RequestMapping(method=RequestMethod.GET) public List spittles( @RequestParam(value=”max”, defaultValue=MAX_LONG_AS_STRING) long max, @RequestParam(value=”count”, defaultValue=”20″) int count) { return spittleRepository.findSpittles(max, count); } 我认为错误来自Long转换为String,但我不知道如何解决它。 我会感谢任何帮助,我是注释和Spring的新手。

在Java中压缩用于客户端/服务器传输的字符串

我使用适当的客户端/服务器消息格式,限制我可以通过网络发送的内容。 我无法发送序列化对象,我必须将消息中的数据存储为String。 我发送的数据是以逗号分隔的大值,我想在将数据作为String打包到消息之前压缩数据。 我尝试使用Deflater / Inflater实现这一目标,但是在某个地方,我遇到了困难。 我正在使用以下两种方法进行放气/充气。 但是,将compressString()方法的结果传递给decompressStringMethod()会返回null结果。 public String compressString(String data) { Deflater deflater = new Deflater(); byte[] target = new byte[100]; try { deflater.setInput(data.getBytes(UTF8_CHARSET)); deflater.finish(); int deflateLength = deflater.deflate(target); return new String(target); } catch (UnsupportedEncodingException e) { //TODO } return data; } public String decompressString(String data) { String result = null; try { […]

Java PatternSyntaxException:字符串替换非法重复?

我正在尝试编写一个接受String的方法,检查它是否有某些令牌的实例(例如${fizz} , ${buzz} , ${foo}等)并用一个新的字符串替换每个令牌。从Map 。 例如,如果我将此方法传递给以下字符串: “现在如何$ {fizz} cow。$ {buzz}奇形怪状的$ {foo}。” 如果该方法参考了以下Map : Key Value ========================== “fizz” “brown” “buzz” “arsonist” “foo” “feet” 然后结果字符串将是: “怎么现在是棕色的牛。纵火犯的脚形状奇特。” 这是我的方法: String substituteAllTokens(Map tokensMap, String toInspect) { String regex = “\\$\\{([^}]*)\\}”; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(toInspect); while(matcher.find()) { String token = matcher.group(); // Ex: ${fizz} String tokenKey […]

为什么Strings在Java中以“”开头?

可能重复: 为什么“abcd”.StartsWith(“”)返回true? 在通过一些代码调试的过程中,我发现我validation的一个特定部分是在String类上使用.startsWith()方法来检查String是否以空白字符开头 考虑以下因素: public static void main(String args[]) { String s = “Hello”; if (s.startsWith(“”)) { System.out.println(“It does”); } } 它打印出It does 我的问题是,为什么Strings以空白角色开始? 我假设在引擎盖下Strings本质上是字符数组,但在这种情况下我会认为第一个字符是H 谁能解释一下吗?

读取多行文本,其值由空格分隔

我有一个以下测试文件: Jon Smith 1980-01-01 Matt Walker 1990-05-12 解析这个文件的每一行的最佳方法是什么,用(姓名,姓氏,生日)创建对象? 当然这只是一个示例,真实文件有很多记录。

将持续时间字符串解析为毫秒

我需要解析一个持续时间字符串,格式为98d 01h 23m 45s以毫秒为单位。 我希望像这样的持续时间有一个相当的SimpleDateFormat ,但我找不到任何东西。 是否有人建议赞成或反对尝试使用SDF用于此目的? 我目前的计划是使用正则表达式来匹配数字并执行类似的操作 Pattern p = Pattern.compile(“(\\d+)”); Matcher m = p.matcher(“98d 01h 23m 45s”); if (m.find()) { int days = Integer.parseInt(m.group()); } // etc. for hours, minutes, seconds 然后使用TimeUnit将它们放在一起并转换为毫秒。 我想我的问题是,这看起来有点矫枉过正,可以做得更容易吗? 关于日期和时间戳的大量问题出现了,但这可能有点不同。

在Java中使用前导零填充等于零(“0”)的二进制字符串

Integer.toBinaryString(data) 给我一个我的数组数据的二进制字符串表示。 但是我想要一个简单的方法来向它添加前导零,因为一个等于零的字节数组给我一个“0”字符串。 我想要像这样的单线: String dataStr = Integer.toBinaryString(data).equals(“0”) ? String.format(format, Integer.toBinaryString(data)) : Integer.toBinaryString(data); String.format()是正确的方法吗? 如果是,我应该使用什么format String? 提前致谢! 编辑: data数组具有动态长度,因此前导零的数量也应如此。

将字符串转换为类

我试图根据一些用户输入在一个Activity之间移动。 我正在尝试使用: String myClass = “some_user_input.class” Intent myIntent = new Intent(getApplicationContext(), myClass); startActivity(myIntent); ……从一项活动转移到另一项活动。 我可以这样做,我直接在硬代码中引用我的新活动,不要尝试从文本中编译它(即classA.class),但是我想通过传递一些字符串编译来构建我的Intent由用户。 例如,如果用户在edittext中输入B,我想转到classB.class如果用户输入Z,我想转到classZ.class 。 有没有什么方法可以编译我想要使用字符串的类,然后我转换为类? 提前致谢!

Java:当单词之间有可变数量的空格时,按空格分割字符串?

我有以下内容: String string = “1-50 of 500+”; String[] stringArray = string.split(” “); 打印出这个数组中的所有元素给出了以下内容: Element 1: 1-50 Element 2: of 500+ 如何通过要求单词之间至少有一个空格来分割元素? 换句话说,我希望我的元素是: Element 1: 1-50 Element 2: of Element 3: 500+

Java中的Unicode到字符串转换

我正在建立一种语言,一种玩具语言。 语法\#0061应该将给定的Unicode转换为字符: String temp = yytext().subtring(2); 然后在尝试将’\u’附加到字符串后,我注意到生成了错误。 我也尝试过”\\” + “u” + temp; 这种方式不做任何转换。 我基本上试图通过仅向方法提供’0061’来将Unicode转换为字符,帮助。