文章目录
- 前言
- 首字母大写
- 判断列表List是否为空
- 列表 交集,并集
- 列表 removeAll方法
- replace方法
- for循环
- List 列表 去除重复元素
- retainAll 方法
- NodeFinder,Block,Statement, ASTNode
- 获取AST node的行号
- ArrayList
- 修改list中的元素
- 嵌套list
- 文件和文件夹的创建(多级目录)
- 断点设置
- 运行 cmd/shell 指令
- list是否包含指定元素
- 杀死eclipse进程
- java判断路径是文件夹还是文件
标题:java 系统学习
前言
用python用久了,写java的时候就懵了。
这里想系统的学习一下。
创建时间:2019年07月18日 16:37:18
首字母大写
java-转换首字母大写
public class Test {
/**
* 需求:把一个字符串的首字母转成大写,其余小写
* 链式编程:只要保证每次调用完方法返回的是对象,就可以继续调用
*/
public static void main(String[] args) {
String str="kObeBryaNt";
String str1=str.substring(0,1).toUpperCase().concat(str.substring(1).toLowerCase());
System.out.println(str1);//Kobebryant
}
}
判断列表List是否为空
- java判断集合list是为空
列表 交集,并集
- java-----求两个list的交集、并集、和差集
主要就是retainAll和removeAll之类的。
列表 removeAll方法
- Java中ArrayList的removeAll方法详解 https://www.jb51.net/article/117750.htm
replace方法
- Java replace() 方法 https://www.runoob.com/java/java-string-replace.html
for循环
- Java里面for循环的几种用法
List 列表 去除重复元素
- Java中List集合去除重复数据的方法
可以新建一个list,然后用.contain这个方法去判断是不是已经包含了元素,不是则加,否则不add。
retainAll 方法
- java 取交集方法retainAll
返回的是boolean值,但是慎用这个返回值。
NodeFinder,Block,Statement, ASTNode
- Class NodeFinder https://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fcore%2Fdom%2FNodeFinder.html
- Class Block https://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fcore%2Fdom%2FBlock.html
- Class Statement https://help.eclipse.org/neon/index.jsp?1topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fcore%2Fdom%2FStatement.html
- Class ASTNode https://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fcore%2Fdom%2FASTNode.html&anchor=getStartPosition–
- Class URL https://docs.oracle.com/javase/7/docs/api/java/net/URL.html
- Class TestResult http://www.gzoltar.com/web/javadoc/1.7.2/index.html
获取AST node的行号
- eclipse ASTNode to source code line number https://stackoverflow.com/questions/11126857/eclipse-astnode-to-source-code-line-number
int lineNumber = compilationUnit.getLineNumber(compilationUnit.getExtendedStartPosition(astNode)
- Java Code Examples for org.eclipse.jdt.core.dom.ASTNode https://www.programcreek.com/java-api-examples/index.php?api=org.eclipse.jdt.core.dom.ASTNode
private void serializePosition(CompilationUnit cu, ASTNode node, JsonGenerator jG) throws IOException {
final int startPosition = node.getStartPosition();
jG.writeFieldName("startPosition");
jG.writeNumber(startPosition);
jG.writeFieldName("startLine");
jG.writeNumber(cu.getLineNumber(startPosition));
jG.writeFieldName("startColumn");
jG.writeNumber(cu.getColumnNumber(startPosition) + 1); // 1-based numbering
final int endPosition = startPosition + node.getLength();
jG.writeFieldName("endPosition");
jG.writeNumber(endPosition);
jG.writeFieldName("endLine");
jG.writeNumber(cu.getLineNumber(endPosition));
jG.writeFieldName("endColumn");
jG.writeNumber(cu.getColumnNumber(endPosition) + 1); // 1-based numbering
}
以上代码是很关键的。
- How to get line number for general ASTNode in the source code? https://stackoverflow.com/questions/47008420/how-to-get-line-number-for-general-astnode-in-the-source-code
这个也可以参考下。
ArrayList
- Java中ArrayList类的用法(二) https://baijiahao.baidu.com/s?id=1620200868843045092&wfr=spider&for=pc
修改list中的元素
- java怎么把list集合中字符串末尾为a的改成 https://zhidao.baidu.com/question/692616515479087524.html
import java.util.ArrayList;
public class Test3 {
public static void main(String[] args) {
ArrayList<String> strList = new ArrayList();
strList.add("adfdgga");
strList.add("afafdgfdsgsd");
strList.add("gaaafdga");
for (int i = 0; i < strList.size(); i++) {
if (strList.get(i).endsWith("a")) {
strList.set(i, "132141341"); // 把结尾为a的字符串替换为"132141341"
}
}
for (String s : strList) {// 打印替换后结果
System.out.print(s + " ");
}
System.out.println();
}
}
嵌套list
- java ArrayList嵌套ArrayList
- Java中Pair键值对的使用
其实可以用ArrayList 和 Pari<String, String> 这样的形式。
.getFisrt()
.getSecond()
可以分别取到Pair的前后两个元素
文件和文件夹的创建(多级目录)
- java 文件和文件夹的创建
- java在不存在文件夹的目录下创建文件
断点设置
- eclipse和myeclipse一键取消所有断点 https://jingyan.baidu.com/article/1612d500406ceee20e1eeed4.html
- Enable and disable all breakpoints in eclipse https://stackoverflow.com/questions/4116260/enable-and-disable-all-breakpoints-in-eclipse?rq=1
其实就是在 debug视图下的右上角变量观察框框的旁边,就是断点的控制窗口。
然后选中所有断点,右键即可控制enable,或者disable。
运行 cmd/shell 指令
- How to use “cd” command using Java runtime? https://stackoverflow.com/questions/4884681/how-to-use-cd-command-using-java-runtime
- Changing the current working directory in Java? https://stackoverflow.com/questions/840190/changing-the-current-working-directory-in-java
list是否包含指定元素
- 如何判断Listlist中是否包含某个字符串 https://zhidao.baidu.com/question/1732997277540138747.html
这个需要遍历list,contains这样的方法应该是不行的。
可以用equals方法。
- Java String.contains()方法
- Java - List 的 contains 方法的性能
- [Java基础]ArrayList的contains方法,你用对了吗?
杀死eclipse进程
- Eclipse hanging, how to kill it properly? https://stackoverflow.com/questions/16961850/eclipse-hanging-how-to-kill-it-properly
在服务器里面需要用到。
如下,需要找到eclipse进程,然后用 kill -9 杀掉(不是-p,-p我运行的时候没用。)
jps -l
// use the actual process id
kill -9 {the_copied_pid}
java判断路径是文件夹还是文件
List<Path> allPaths = new ArrayList<>();
try (Stream<Path> paths = Files.walk(Paths.get(folder))) { //"/home/you/Desktop"
paths
// .filter(path -> path.toAbsolutePath().toString().endsWith(".java")) //Files::isRegularFile
.forEach(path -> {
String filePath = path.toAbsolutePath().toString();
if (new File(filePath).isFile()){
allPaths.add(path);
if(!filePath.endsWith(".java")){
FileUtil.writeToFileWithFormat("non_java file: %s", path.toAbsolutePath().toString());
}
}
});
int javaFileCnt = 0;
for(Path path : allPaths){
if (path.toAbsolutePath().toString().endsWith(".java")){
javaFileCnt ++;
String filePath = path.toAbsolutePath().toString();
locCnt += FileUtil.readFile(filePath).size();
locCntNotEmpty += FileUtil.readFileForLocCnt(filePath).size();
}
}
FileUtil.writeToFileWithFormat("all files cnt in %s: %s, all java files cnt: %s", folder, allPaths.size(), javaFileCnt);
} catch (IOException e) {
e.printStackTrace();
}
- java判断路径是文件夹还是文件 2020年10月18日22:08:04