我正在创建一个简单的IDE使用JTextPane和检测关键字并着色它们.
目前,我能够检测到:
我检测这些类型的方式是通过正则表达式.
现在,我试图检测像[int x = 10;] 这样的变量并将它们着色为不同的颜色.
目前,我能够使用以下正则表达式获取所有数据类型,如int,float char:
Pattern words = Pattern.compile(\\bint\\b|\\bfloat\\b\\bchar\\b);
Matcher matcherWords = words.matcher(code);
while (matcherWords.find()) {
System.out.print(code.substring(matcherWords.start(), matcherWords.end());
// How to get next word that is a variable?
}
Run Code Online (Sandbox Code Playgroud)
以下是我的程序的示例输出:

我怎么能够检测变量一样a,b,c之后我能察觉int,float等等?
在任何变量或参数之前放置$符号的区别或意义是什么?
例如
假设这是我的班级......
public class Vector3 {
public Vector3(float x, float y, float z){
//...
//... my ctor code
//...
}
}
Run Code Online (Sandbox Code Playgroud)
这两个声明之间的区别是什么......
宣言1
Vector3 $vec = new Vector3(1f,1f,1f);
Run Code Online (Sandbox Code Playgroud)
宣言2
Vector3 vec = new Vector3(1f,1f,1f);
Run Code Online (Sandbox Code Playgroud)
如果您在声明1和声明2中的"vec"之前注意到$ sign.
有线索吗?
另外,声明与下面相同的构造函数,
public class Vector3 {
public Vector3(float $x, float $y, float $z){
//...
//... my ctor code
//...
}
}
Run Code Online (Sandbox Code Playgroud)
上面的构造函数和初始构造函数有什么区别?
谢谢...
编辑:感谢你的所有回复,我用不同的组合做了这个,没有重大意义:)我感谢你的所有答案.