据英国《每日电讯报》网站报道,加拿大摄影师乔迪(JodyMacDonald)搭乘着一辆运矿火车横穿撒哈拉沙漠,用相机记录下这“沙漠之边”的独特魅力。

39岁的乔迪是一位久负盛名的极限运动爱好者及摄影师,擅长将两者合二为一并且创作出极具视觉冲击力的作品。乔迪开启为期两个月的“沙漠之旅”前做了精心的准备。在横穿撒哈拉的途中,也始终带着自己最喜爱的冲浪板。

这次旅行中,乔迪选择了撒哈拉沙漠中基本上唯一的交通工具——运矿火车。如何安全地“扒火车”也成了这次火车之旅get到的一项重要技能。

乔迪搭乘的这条火车是世界上最长的火车之一,从矿坑里驶出后,它将最终到达遥远的西北海岸。

乔迪这两个月“华丽的冒险”,一路坎坷,计划在到达目的地后冲浪庆祝。

但在此之前,乔迪和团队成员不得不经历一次又一次沙尘暴,有时撒哈拉的风速高达150公里每小时。乔迪开玩笑说:“因为天天吹风沙,我感觉自己的皮肤粗糙得像砂纸”。

在漫无边际的沙漠,火车像是驶入了世界的尽头。不过为了拍摄纪录壮美的大漠孤烟,乔迪说,这一切都值。

即使旅途艰辛,乔迪依然不忘记录下撒哈拉的风土人情。

沙漠遇上海洋,撒哈拉演绎着自己的传奇。

在无垠的沙漠面前人类显得格外的弱小。

乔迪表示自己将一直走在前往世界各地的路上:“我一直热爱冒险以及野外,我旅行过太多地方,我擅长用照相机记录下这些。”

工作中突然发现split不能正常使用了,查看了源码才发现是特殊字符,对于这种情况可以以下方法解决:

关于点的问题是用string.split 解决。关于竖线的问题用
string.split解决。关于星号的问题用 string.split解决。关于斜线的问题用
sring.split解决。关于中括号的问题用
sring.split(“[\[\]澳门新葡亰平台游戏网站,(file://[//)]”)解决。

研究下java 源码可以发现遇到这些特殊字符会抛出异常

public final class Pattern implements java.io.Serializable{ private Node sequence { Node head = null; Node tail = null; Node node = null; LOOP: for  { int ch = peek(); switch  { case '(': // Because group handles its own closure, // we need to treat it differently node = group0(); // Check for comment or flag group if (node == null) continue; if (head == null) head = node; else tail.next = node; // Double return: Tail was returned in root tail = root; continue; case '[': node = clazz; break; case '\\': ch = nextEscaped(); if (ch == 'p' || ch == 'P') { boolean oneLetter = true; boolean comp = (ch == 'P'); ch = next(); // Consume { if present if (ch != '{') { unread(); } else { oneLetter = false; } node = family(oneLetter).maybeComplement; } else { unread(); node = atom(); } break; case '^': next(); if (has(MULTILINE)) { if (has(UNIX_LINES)) node = new UnixCaret(); else node = new Caret(); } else { node = new Begin(); } break; case '$': next(); if (has(UNIX_LINES)) node = new UnixDollar(has(MULTILINE)); else node = new Dollar(has(MULTILINE)); break; case '.': next(); if (has { node = new All(); } else { if (has(UNIX_LINES)) node = new UnixDot(); else { node = new Dot(); } } break; case '|': case ')': break LOOP; case ']': // Now interpreting dangling ] and } as literals case '}': node = atom(); break; case '?': case '*': case '+': next(); throw error("Dangling meta character '" +  + "'"); case 0: if (cursor >= patternLength) { break LOOP; } // Fall through default: node = atom(); break; } node = closure; if (head == null) { head = tail = node; } else { tail.next = node; tail = node; } } if (head == null) { return end; } tail.next = end; root = tail; //double return return head; }}

相关文章