我有一个Java字符串,例如" 10 20 30 40 50" 。我想多次根据一些业务需求使用 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进行三倍重叠,就像我将值加倍一样。
答案 0 :(得分:0)
我会编写一个函数,它接受一个字符串和一个int(作为乘数)并返回一个字符串。在函数内部,它根据空格解析字符串,然后将字符串转换为int数组。然后代码将ints数组乘以您传递给函数的int。毕竟,它会将int连接成一个空字符串,在它添加的每个int之后添加空格,以便在函数末尾返回该字符串。
作为一名新程序员,请尽可能训练自己不要使用第三方库。一开始可能看起来很难,但从长远来看它会得到回报!
答案 1 :(得分:0)
您可以完全避免使用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);
}