簡體   English   中英

.split(“ |”)中的運行時錯誤

[英]Run-time error in .split(“|”)

我在那一行中使用該方法:

f.getCmbAttori().getSelectedItem().toString().split("|")

輸入類似“ 13 | Il Signore degli Anelli”的內容,並插入了return:

f.getCmbAttori().getSelectedItem().toString().split("|")[0] = "13"
f.getCmbAttori().getSelectedItem().toString().split("|")[1] = "Il Signore degli Anelli"

它返回一個數組,其中每個字符都是單獨的,如下所示:

    f.getCmbAttori().getSelectedItem().toString().split("|")[0] = ""
    f.getCmbAttori().getSelectedItem().toString().split("|")[1] = "1"
    f.getCmbAttori().getSelectedItem().toString().split("|")[2] = "3"
    f.getCmbAttori().getSelectedItem().toString().split("|")[3] = "|"
    f.getCmbAttori().getSelectedItem().toString().split("|")[4] = "I"
    f.getCmbAttori().getSelectedItem().toString().split("|")[5] = "l"
[...]

    f.getCmbAttori().getSelectedItem().toString().split("|")[25] = "l"
    f.getCmbAttori().getSelectedItem().toString().split("|")[26] = "i"

怎么可能呢? 我用錯誤的方式沖洗此方法? 這是我使用的一段代碼:

PreparedStatement stmSql = null;
                 int risultato = 0;                  
                 stmSql = f.conn.prepareStatement("insert into recita (CodAttore, CodFilm) values (?, ?)");
                 stmSql.setInt(1, Integer.parseInt(f.getCmbAttori().getSelectedItem().toString().split("|")[1]));
                 stmSql.setInt(2, Integer.parseInt(f.getCmbFilmRecita().getSelectedItem().toString().split("|")[1]));
                 risultato = stmSql.executeUpdate();

String.split函數采用正則表達式,請嘗試使用此命令:

split("\\|")

這將使它按字面量分割|

通常,如果要按固定字符串(而不是正則表達式)分割,請使用quote

.split(Pattern.quote("|"))

嘗試split("\\\\|");

或者您可以使用

split(Pattern.quote("|"));

java.lang.String.split拆分正則表達式。

十二個字符在正則表達式中具有特殊含義:反斜杠\\ ,脫字號^ ,美元符號$ ,句點或點. ,豎線或豎線符號| ,問號? ,星號或星號* ,加號+ ,左括號( ,右括號) ,方括號[和左花括號{

這些特殊字符通常被稱為"metacharacters"

更多

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM