今天写了这个包含233的五位数这题,感觉题目很短,但是还是不会做。
然后去百度了一下,看到了AC_Coding的文章就觉得无比简单啊啊啊,然而有一个地方没有看懂?
咦? String s = ""+i; 这是个啥?然后问了朋友,然后他说你个智障,就是拼接字符串,然后我立即百度拼接字符串这个关键词,发现
有好几种拼接方法,然后看到了 String s = String.valueOf(i);,啊~这才是我这种渣渣熟悉的拼接方法~
- @Test
- public void testPlus() {
- String s = "";
- long ts = System.currentTimeMillis();
- for (int i = 0; i < 10000; i++) {
- s = s + String.valueOf(i);
- }
- long te = System.currentTimeMillis();
- logger.info("+ cost {} ms", te - ts);
- }
- @Test
- public void testConcat() {
- String s = "";
- long ts = System.currentTimeMillis();
- for (int i = 0; i < 10000; i++) {
- s = s.concat(String.valueOf(i));
- }
- long te = System.currentTimeMillis();
- logger.info("concat cost {} ms", te - ts);
- }
- @Test
- public void testJoin() {
- List<String> list = new ArrayList<String>();
- long ts = System.currentTimeMillis();
- for (int i = 0; i < 10000; i++) {
- list.add(String.valueOf(i));
- }
- StringUtils.join(list, "");
- long te = System.currentTimeMillis();
- logger.info("StringUtils.join cost {} ms", te - ts);
- }
- @Test
- public void testStringBuffer() {
- StringBuffer sb = new StringBuffer();
- long ts = System.currentTimeMillis();
- for (int i = 0; i < 10000; i++) {
- sb.append(String.valueOf(i));
- }
- sb.toString();
- long te = System.currentTimeMillis();
- logger.info("StringBuffer cost {} ms", te - ts);
- }
- @Test
- public void testStringBuilder() {
- StringBuilder sb = new StringBuilder();
- long ts = System.currentTimeMillis();
- for (int i = 0; i < 100000; i++) {
- sb.append(String.valueOf(i));
- }
- sb.toString();
- long te = System.currentTimeMillis();
- logger.info("StringBuilder cost {} ms", te - ts);
- }
- }
这是第八届蓝桥杯模拟一的第二题,题目:请计算所有五位数中,一共有多少包含 233 的数。
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum = 0;
for(int i = 10000;i <= 99999; i++){
String s = String.valueOf(i);
if(s.contains("233")){
sum++;
}
}
System.out.println(sum);
}
}