用于多个处理的单个Java StringTokenizer

用于多个处理的单个Java StringTokenizer,java,collections,stringtokenizer,Java,Collections,Stringtokenizer,我有一个Java字符串,比如“102030040”。我想根据一些业务需求多次使用StringTokenizer处理这些值 例如,对于某些条件,我希望每个值加倍,即,“20 40 60 80 100”,对于另一个条件,我希望加倍,即,“30 60 90 120 150” 我发现可以通过创建多个StringTokenizer来实现,每个条件一个。我的问题是,可以使用StringTokenizer的单个实例来完成吗?如果有,请给出有效的解决方案 以下是我的编码工作: String str = "10

我有一个Java字符串,比如“102030040”。我想根据一些业务需求多次使用StringTokenizer处理这些值

例如,对于某些条件,我希望每个值加倍,即,“20 40 60 80 100”,对于另一个条件,我希望加倍,即,“30 60 90 120 150”

我发现可以通过创建多个StringTokenizer来实现,每个条件一个。我的问题是,可以使用StringTokenizer的单个实例来完成吗?如果有,请给出有效的解决方案

以下是我的编码工作:

String str = "10 20 30 40 50";
StringTokenizer st = new StringTokenizer(str);
while(st.hasMoreTokens()){
    int i = Integer.parseInt(st.nextToken())*2;
    System.out.println(i);
}
我可以使用相同的实例“st”将值增加三倍吗

编辑:
我知道这可以通过另一个数组或另一个列表来完成。但是我想知道如何将相同的StringTokenizer重新用于三倍化,就像我用于加倍值一样。

我将编写一个函数,它接受一个字符串和一个int(作为乘数)并返回一个字符串。在函数内部,它基于空格解析字符串,然后将字符串转换为整数数组。然后,代码将整数数组乘以传递到函数中的整数。在所有这些之后,它将把整数合并成一个空字符串,在它添加的每个整数之后再添加空格,以便在函数末尾返回该字符串


作为一名新程序员,尽可能不要使用第三方库。一开始可能看起来很难,但从长远来看会有回报的

您可以完全避免使用StringBuilder,因为不鼓励使用它。以下是您可以根据需要使用/修改的版本。代码几乎是不言自明的:

    public static String operate(int[] intArrNumbers,int multiplier ){
        StringBuilder finalStr = new StringBuilder();
        for(int i: intArrNumbers){
            finalStr.append(i*multiplier);
            finalStr.append("\n");
        }
        return finalStr.toString();
    }


    public static void main(String[] args){
        String str = "10 20 30 40 50";
        String[] strArrNumbers = str.split(" ");
        int size = strArrNumbers.length;
        int[] intArrNumbers = new int[size];
        int index=0;
        for(String z:strArrNumbers){
            intArrNumbers[index]= Integer.parseInt(z);
            index++;
        }
        int multiplier = 3;

        String result = operate(intArrNumbers,multiplier);
        System.out.println(result);


}

我们不会只为您编写代码。展示您的努力:“
StringTokenizer
是一个遗留类,出于兼容性原因保留它,尽管在新代码中不鼓励使用它”。这是OracleSpeak for,请勿使用此
。解析字符串一次,存储值,然后可以对它们进行多次操作。但不,我并没有提供代码,也不是为了一个问题而付出这么少的努力。@dcsohl,你的方法是对的。但是我想要一个使用单StringTokenizer的解决方案。我已经显示了我的代码。我不知道谁在不理解问题的情况下投了反对票。好吧,但我的方法使用了一个StringTokenizer。例如,将值存储在
列表中。然后你可以随心所欲地对它们进行操作,而无需再次标记。(同时,也要考虑人们可能因为你理解这个问题而被否决了,因为你在找人做你的家庭作业。)