我最近开始学习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'字样?
谢谢.
我正在尝试使用以下格式为每个人打印年龄:
例如: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); 我认为我的逻辑很糟糕,但我无法弄明白,任何想法?
我正在使用AsyncHttpClient库从一个非常基本的 Android 应用程序发出 HTTP 请求。现在,我只需要使用包含用户名和密码的JSON正文(这是强制约束,因为我必须使用的REST服务需要该格式的请求)发出POST请求。
由于不太了解 Android 开发和相关库,我尝试向 Google 发出一个简单的GET请求,结果完美。然后,我尝试切换到POST请求,但从文档看来,post 方法严格需要RequestParams参数。我确实需要发送JSON:有没有办法做到这一点AsyncHttpClient?我尝试了在网络和 StackOverflow 上找到的几种解决方案,但不幸的是没有人起作用。
最终,作为最后一次机会,我愿意切换库(并且也欢迎这个方向的建议 - 至少如果它们易于使用AsyncHttpClient,考虑到我的经验不足),但我更愿意坚持我现在的选择。
感谢您的帮助。
每当添加新值时,我都会尝试增加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.
假设我们有这样的情况:我们有一个上限(这是一个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)但是用浮点数做这个并不简单.是否有图书馆功能实现这一目标?
我想获取由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)