小编mas*_*inu的帖子

如何在lex中创建没有特定字母组的正则表达式

我最近开始学习lex,所以我练习并决定制作一个识别正常变量声明的程序.(有点)

这是我的代码:

%{
#include "stdio.h"
%}
dataType "int"|"float"|"char"|"String"
alphaNumeric [_\*a-zA-Z][0-9]*
space [ ]
variable {dataType}{space}{alphaNumeric}+
%option noyywrap
%%
{variable} printf("ok");
. printf("incorect");
%%
int main(){
yylex();
}
Run Code Online (Sandbox Code Playgroud)

有些情况下输出应该返回 ok

int var3
int _varR3
int _AA3_
Run Code Online (Sandbox Code Playgroud)

如果我键入输入:int float,则返回ok,这是错误的,因为它们都是保留字.

所以我的问题是我应该修改什么来使我的表达式忽略空格后的'dataType'字样?

谢谢.

regex lex flex-lexer

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

如何使用Oracle获得年,月,日的年龄

我正在尝试使用以下格式为每个人打印年龄:

例如:19年,8个月,13天.

我已经google了很多,我注意到有一个特定的函数来计算日期之间的差异DATEDIFF.

但是这个功能不存在SQL*Plus,所以我继续尝试使用MONTHS_BETWEEN()和一些运算符.

我的尝试:

SELECT name , ' ' || 
    FLOOR(MONTHS_BETWEEN(to_date(SYSDATE),to_date(date_of_birth))/12)||' years ' ||  
    FLOOR(MOD(MONTHS_BETWEEN(to_date(SYSDATE),to_date(date_of_birth)),12)) || ' months ' || 
    FLOOR(MOD(MOD(MONTHS_BETWEEN(to_date(SYSDATE),to_date(date_of_birth)),12),4))|| ' days ' AS "Age"
FROM persons;
Run Code Online (Sandbox Code Playgroud)

我的问题依赖于获得日子.我不知道如何计算天数,使用此功能('尝试除以4或30); 我认为我的逻辑很糟糕,但我无法弄明白,任何想法?

sql oracle date-arithmetic

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

如何使用 AsyncHttpClient 发送 JSON 正文?

我正在使用AsyncHttpClient库从一个非常基本的 Android 应用程序发出 HTTP 请求。现在,我只需要使用包含用户名和密码的JSON正文(这是强制约束,因为我必须使用的REST服务需要该格式的请求)发出POST请求。

由于不太了解 Android 开发和相关库,我尝试向 Google 发出一个简单的GET请求,结果完美。然后,我尝试切换到POST请求,但从文档看来,post 方法严格需要RequestParams参数。我确实需要发送JSON:有没有办法做到这一点AsyncHttpClient?我尝试了在网络和 StackOverflow 上找到的几种解决方案,但不幸的是没有人起作用。

最终,作为最后一次机会,我愿意切换库(并且也欢迎这个方向的建议 - 至少如果它们易于使用AsyncHttpClient,考虑到我的经验不足),但我更愿意坚持我现在的选择。

感谢您的帮助。

java post android json asynchttpclient

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

在Java中增加ArrayList中ArrayList的大小

每当添加新值时,我都会尝试增加ArrayList内部的大小,ArrayList但我不确定这样做的正确方法.这就是我现在所拥有的:

public ArrayList<ArrayList<Integer>> outerList;

public int addValue(int value) {
    int a = 0;

    ArrayList<Integer> innerList = new ArrayList<Integer>();

    if (noValue(value) == true) { // noValue checks if the value exists at a position in outerList and returns true if it's empty
            innerList.add(value); // innerList has now size 1
            outerList.add(innerList); 

    }

    else {
            a += 1;
            innerList.add(value);
            outerList.add(innerList);
    }

    return a; 

}
Run Code Online (Sandbox Code Playgroud)

但根据我的测试,innerList遗体的大小为1.

java collections arraylist

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

如何获得下一个浮点值(向上或向下)?

假设我们有这样的情况:我们有一个上限(这是一个float),以及一个标志"strict"(boolean).我们想要扫描值列表(浮点数)并对满足约束的每个值执行某些操作.

检查看起来像这样:

value -> strict ? (value < bound) : (value <= bound)
Run Code Online (Sandbox Code Playgroud)

这不是世界末日,但bound并且strict远离该检查定义,以及代码位置的原因,将是很好不发送strict一路经历的过程.

如果可能的话,将方便地移动到"下一个值"将是方便的,这样value <= bound我们就可以检查而不是检查value < boundPlusALittleBit.

如果我们使用ints而不是floats,这很容易(boundPlusALittleBit = bound + 1)但是用浮点数做这个并不简单.是否有图书馆功能实现这一目标?

java floating-point

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

如何跳过Java字符串数组中的3个元素并获取下3个元素

我想获取由3个元素分隔的Array的字符串。例如,我需要跳过3个元素0,1,2,并取3,4,5个元素。重复一遍。(跳过6,7,8并获得9,10,11),直到数组结束。我该怎么办?

String s1[] = hh.split("\\r?\\n");
System.out.println(s1[3]);

for (int i=0;i<s1.length; i++){

}
Run Code Online (Sandbox Code Playgroud)

子串输出:


            org.springframework
            spring-jdbc
            1.0-m4

            org.apache.tomcat
            tomcat-jdbc
            7.0.19

            commons-configuration
            commons-configuration
            20030311.152757

            commons-io
            commons-io
            0.1

            org.springframework.security.oauth
            spring-security-oauth2
            2.1.1.RELEASE


Run Code Online (Sandbox Code Playgroud)

java loops

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