如何获得一定范围的字符串输入?

时间:2015-08-31 08:40:42

标签: java string

我想知道是否可以从字符串中获取一系列输入。

假设输入是一个表示"(INPUT:the dog, the cat)"的字符串。 我们如何将字符串从:剪切到,?这可能吗 ?

3 个答案:

答案 0 :(得分:2)

您可以使用String::substring()方法从实际字符串中获取字符串的一部分。

  

substring()方法接受起始索引或起始索引和结束索引,并在这些索引之间返回一个字符串。

String s = "(INPUT:the dog, the cat)";
System.out.println(s.substring(s.indexOf(":") + 1, s.indexOf(",")));//the dog

如果您也想要所有其他输入,可以将它与split()

结合使用
String s = "(INPUT:the dog, the cat)";
String inp = s.substring(s.indexOf(":") + 1, s.length() - 1);
String []tokens = inp.split(", ");//["the dog", "the cat"]
for(int i = 0; i < tokens.length; ++i)
    System.out.println(tokens[i]);

答案 1 :(得分:2)

在Java中,Strings是对象,因此,每个String都有使用String内容进行操作的方法。

对于您的任务,有两种有用的方法。

indexOf - 返回指定字符第一次出现的字符串中的索引。

substring - 返回一个字符串,该字符串是该字符串的子字符串。

有几种方法具有相同的名称但签名(参数)不同,因此请根据您的特定需求进行选择。

答案 2 :(得分:0)

public class SnipString {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String str = "(INPUT:the dog, the cat)";
        String str1 = "";
        char[] arr = str.toCharArray();
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == ':') {
                i++;
                while (arr[i] != ',') {
                    str1 = str1 + arr[i];
                    i++;
                }
            }
        }
        System.out.println(str1);
    }
}