簡體   English   中英

如何檢查每個字母是否為字符串

[英]How to Check Every Letter as a String

我無法通過以下測試用例:

@Test (timeout=3000) public void gatenot_0(){
    GateNot g = new GateNot (new Wire("inw"), new Wire("outa"));
    g.feed("0");
    boolean ans = g.propagate();
    assertEquals(sigs1, g.read());
  }

其中顯示"Invalid character" -通過以下方法引發的異常:

public static List <Signal> fromString(String inps)
    {
        List<Signal> values = new ArrayList<Signal>();
        for(int i = 0; i < inps.length(); i++)
        {
            if(inps.charAt(i) != '1' && inps.charAt(i) != '0' 
                    && inps.charAt(i) != 'X' && inps.charAt(i) != 'x'
                    && inps.charAt(i) != ' ' && inps.charAt(i) != '\t')
                throw new ExceptionLogicMalformedSignal(inps.charAt(0), "Invalid character!");

            else if(inps.charAt(i) == '1')
                values.add(HI);
            else if(inps.charAt(i) == '0')
                values.add(LO);
            else if(inps.charAt(i) == 'X')
                values.add(X);
            else if(inps.charAt(i) == 'x')
                values.add(X);



        }
        return values;

    }

每當我傳遞包含“ 0”或“ 1”的東西時,都會引發異常。因此,我應該將String inps的每個字母都作為String而不是charAt() 如果是,我應該如何檢查? 提前致謝。

要檢查每個字母是否為字符串,可以使用

Character.toString(inps.charAt(i))

而不只是inps.charAt(i)

我建議為每次迭代將其存儲在變量中,而不是多次調用。

你也可以

String.valueOf(inps.charAt(i))

有捷徑

inps.charAt(i) + ""

還有另一種方式:

inps.substring(i, i + 1)

請注意,如果結束將每個字母轉換為字符串的操作,則在比較它們時應使用.equals方法。

有關此的更多信息,您可以查看如何將char轉換為String?

暫無
暫無

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

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