检查字符是否是标点符号

时间:2014-11-16 05:41:19

标签: java

编程以检查字符串中的第一个字符是否为标点符号,如果是,则删除该字符并返回新单词。

public static String checkStart(String word){
    char [] punctuation = {'.' , ',' , ';' , ':', '?' , '!' , '"' , '\'' , ')' , '('};
    int i;

    for (i = 0; i < punctuation.length;i++){
        if(word.charAt(0) == punctuation[i]){
            word = word.substring(1);
        }    
    }
    return word;
}

为什么不起作用?

这是方法调用者

public static String[] removePunctuation(String [] words){
    int i, j;

    for (i = 0; i < words.length;i++){
        words[i] = checkStart(words[i]);
    }
    return words;
}

}

4 个答案:

答案 0 :(得分:1)

适合我。

public static void main(String[] args) {
    System.out.println(checkStart(",abcd"));
}

输出:

abcd

您的方法可能有错误。

答案 1 :(得分:1)

  

编程以检查字符串中的第一个字符是否为标点符号

这实际上并没有做到这一点。想想如果你输入&#34;。,; Hello&#34;会发生什么? - 在这种情况下,你会回来&#34;你好&#34;。另一方面,如果你输入&#34;;,。Hello&#34;,你就会回来&#34;,。Hello&#34; - 这是因为你按顺序遍历数组,并且在第一种情况下,标点符号的顺序是每个符号被捕获的顺序,但在第二种情况下,当你是时,逗号和句点都不在零位。看标点符号[0]或标点符号[1]。我不确定这些行为中的一个是否是您发现的错误,但我认为其中至少有一个是不正确的。

答案 2 :(得分:0)

我把你的代码放入我的netbeans中,似乎运行正常:

public class Test{
    public static String checkStart(String word){
        char [] punctuation = {'.' , ',' , ';' , ':', '?' , '!' , '"' , '\'' , ')' , '('};
        int i;

        for (i = 0; i < punctuation.length;i++){
            if(word.charAt(0) == punctuation[i]){
                word = word.substring(1);
            }    
        }
        return word;
    }

    public static void main(String args[]){
        System.out.println(checkStart("test"));
        System.out.println(checkStart("!test"));
        System.out.println(checkStart(";test"));
        System.out.println(checkStart("(test"));
    }
}

这有输出:

测试

测试

测试

测试

答案 3 :(得分:0)

我不确切知道,但我想你想在一些特定的角色之后得到字符串。 所以我改变了下面的代码。

package org.owls.test;

public class CheckStart {
    private static String checkStart(String word){
        char [] punctuation = {'.' , ',' , ';' , ':', '?' , '!' , '"' , '\'' , ')' , '('};
        int i;

        for (i = 0; i < punctuation.length;i++){
            for(int j = 0; j < word.length(); j++){
                if(word.charAt(j) == punctuation[i]){
                    word = word.substring(j);
                }    
            }
        }
        return word;
    }

    public static void main(String[] args) {
        System.out.println(checkStart("gasf;dgjHJK"));
    }
}

所以你可以得到&#39;; dgjHJK&#39;作为回报。如果有多个关键字并且您只想从第一个子串中进行子串,则在checkStart中将break;添加到第二个循环。

祝你有个美好的一天!