UVA445 JAVA版本 Marvelous Mazes

自我标记:String数据结构的轻应用
辣鸡小玲的题解

利用CSND这个平台记录一下我的成长历程。

UVA445 JAVA版本

Marvelous Mazes
水中之水,天河净水

题目我就不贴了,一搜一大把
贴代码了

import java.util.Scanner;
import java.util.*;

public class Main {//MarkⅠ等会解释
	public static void main(String[] args) {
		Scanner reader = new Scanner(System.in);
		while (reader.hasNext()) //当能读入整行的时候
		{
			String s = reader.nextLine();//读入整行
			if ("".equals(s))// 读入空行则输出空行
				System.out.println();
			else {
				int length = s.length();//是数组就可以用.length()获得长度噢
				int i = 0;
				int j = 0;
				int copy = 0;
				for (i = 0; i < length; i++) {
					char ch = s.charAt(i);//得到下标为i的字符串中的字符元素
					if (ch >= '0' && ch <= '9')// 如果是数字,更新copy
						copy = copy + ch - '0';
					else// 不是数字,是*、!、b、T、X……
					{
						switch (ch) {
						case '!': // 读入!则输出空行
							System.out.println();//有ln的,输出完会换行
							break;
						case 'b': // 读入b则输出空格
							for (j = 0; j < copy; j++) {
								System.out.print(' ');//没有ln的,输出完不换行
							}
							copy = 0;// 输出完成,重置copy
							break;
						default:
							for (j = 0; j < copy; j++) {
								System.out.print(ch);
							}
							copy = 0;// 输出完成,重置copy
							break;
						}
					}
				}
				System.out.println();// 循环结束之后的换行符
			}
		}
	}
}

MARKⅠ

最大的那个类名要取名为Main
大部分常见OJ要求只能提交一个源代码段落,即只能有一个.java文件。
通常文件命名为Main,程序入口为public static void main().
而Java要求public的类必须与所在文件同名。
因此只能是
public class Main{
public static void main(String [] args){
}
}
当你希望另外构建class时,不能再使用public关键词。
使用java.util.Scanner或Reader等类封装System.in时,注意只能有一个封装实例,否则可能弄丢输入数据。

作者:张浩斌
链接:http://www.zhihu.com/question/28337144/answer/40416573
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

虽然我的博客你们可以随便转噢,但是我转别人的还是要打上“版权所有,侵权必究”这八个字,上面这个哥哥的知乎上还写了个“从C到Java的小贴士”,我一并贴了,大家也一并“版权所有,侵权必究”哈。

这学期又要给网工同学上Java课了,先在这里写一点tips要点。

1.public static void main(String []args) 是死规定,没有为什么。
2.[ ]是一种对象,自带.length
3.所有方法都写成static的,可以在java的对象里面写过程式程序。
4.String不是char[],汉字也不是两个字节,”中文”.length()==2
5.java.util.*是入门的必经之路,熟悉里面的List/Vector/Collections等常用工具类可以顺利解决大部分问题。
6.switch在1.7之后可以用String类型(学校OJ是1.6,不支持)
7.Integer.parseInt() Double.parseDouble() String.valueOf() 是常见数据类型转换工具。
8.System.out.format System.out.printf 用起来跟stdio.h的printf是一样的。
9.String.format()可以快速高效的拼接字符串。
10.String是个final类,不能继承,这是有意为之。
11.OJ上做题只有Main这个类可以是public,其他类不能用public。
12.new Scanner(System.in)这个操作只能做一次。
13.scanner.next()之后如果当前输入位置在行尾,nextLine()将只能得到一个””。
14.有的题用Scanner.nextLine()+String.split(” “)处理起来编码效率最高

小玲现在还看不懂,说不定以后就能看懂了。

MARKⅠ ending
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值