我想使用通過套接字獲得的引數打開一個檔案。當我使用 split() 提取檔案名時,檔案沒有打開。但是當我硬編碼它確實打開的值時。我在這里想念什么?我希望字串是相等的。
String name = str.split(";")[2];
System.out.println("Filename: " name);
String path1 = new String("Input_Blatt3/Sample.txt");
String path2 = new String("Input_Blatt3/" name);
System.out.println("Path1: " path1);
System.out.println("Path2: " path2);
System.out.println("path1.equals(path2) = " path1.equals(path2));
輸出:
Path1: Input_Blatt3/Sample.txt
Path2: Input_Blatt3/Sample.txt
path1.equals(path2) = false
uj5u.com熱心網友回復:
字串中可能隱藏了不可列印的字符。用于getBytes獲取字串的所有字符并列印這些字符。你可能會發現一些你沒想到的東西。
您需要遍歷位元組陣列以單獨列印每個位元組,如下面的方法:
private static void printBytes(String string) {
System.out.println("printing " string);
for (byte aByte : string.getBytes()) {
System.out.println( aByte );
}
}
或者,您也可以replace是所有不是可列印字符的東西。
uj5u.com熱心網友回復:
可能有一些尾隨空格,您不會在控制臺輸出中看到這些空格。
您可以嘗試name.strip()(或者trim()如果您的 JDK 版本低于 11)以確保字串中只有檔案名。
此外,您可以使用以下方法找到這兩個字串的第一個不匹配字符的索引Arrays.mismatch():
int indexOfMismatch = Arrays.mismatch(str1.toCharArray(), str2.toCharArray());
如果字串相等,indexOfMismatch則為-1.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/517101.html
標籤:爪哇细绳分裂
上一篇:java快取方法的結果嗎?
