public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
String n=sc.nextLine();
sc.close();
int sum=0;
String temp="";
int num=0;
ArrayList<String> list=new ArrayList<String>();
//字符串转算式,存放在list里面
for(int i=0;i<n.length();i++) {
temp=String.valueOf(n.charAt(i));
if(temp.equals("+")||temp.equals("-") || temp.equals("=")) {
list.add(num+"");
list.add(temp);
num=0;
}else {
num=Integer.parseInt(temp)+num*10;//计算这里没有想通。
}
//最后一个数输入
if(i==n.length()-1) {
list.add(num+"");
}
}
//运算
String temp1="";//用于检查是数字还是加减号
sum=Integer.parseInt(list.get(0));//挨个计算的结果
for(int i=1;i<list.size()-1;i++) {
temp1=list.get(i);
if (temp1.equals("=")) {
break;
}
if(temp1.equals("+")) {
sum=sum+Integer.valueOf(list.get(i+1));
}else if(temp1.equals("-")) {
sum=sum-Integer.valueOf(list.get(i+1));
}
}
System.out.println(sum);
}
题目二:现有多组整数数组,需要将他们合并成一个新的数组。合并规则,从每个数组按顺序
取出固定长度的内容合并到新的数组中,取完的内容会删除掉,如果该行不足固定长度
或者已经为空,则直接取出剩余部分的内容放到新的数组中,继续下行。如样例1,
获得长度3,先遍历第一行,获得2.5.6 ;再遍历第二行,获得1,7.4;再循环回到第行.
获得7,9,5 ;再遍历第二行,获得1,7,4;再循环回到第1行,获得7.按顺序拼接成最终结果
输入描述:
第一行是每次读取的固定长度,长度>0 ,第二行是有多少行字符串m个接下来m行字符串是需要合并的数组,不同的数组用回车换行分隔,数组内部用建号分隔
输出描述:
输出一新的数组,用逗号分隔。
输入:
32
2,5,6,7,9,5,7
1,7,4,3,4
输出:
2,5,6,1,7,4,7,9,5,3,4,7
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
int m = sc.nextInt();
List<String> list = new ArrayList<>();
//统计那个字符串最长
int maxLength = 0;
for(int i=0;i<m;i++) {
list.add(sc.next());
if(list.get(i).length()>maxLength) {
maxLength = list.get(i).length();
}
}
//以n的二倍为间隔,遍历,这里两层遍历考虑好那层是外层
int len = n*2;
String temp="";
for (int j=0;j<maxLength;j+=len) {
for(int i=0;i<list.size();i++) {
//长度够就直接加
if(j+len<=list.get(i).length()) {
temp += list.get(i).substring(j,j+len);
//长度不够,就把剩余的加上
}else if(list.get(i).length()>=j && list.get(i).length()<j+len) {
temp += list.get(i).substring(j,list.get(i).length());
//每个字符串完事会少一个逗号
temp +=",";
}else {
//没长度了直接跳过这个字符串
continue;
}
}
}
}