Scheme 颠倒文本

Scheme 颠倒文本,scheme,racket,Scheme,Racket,你将如何设计一个程序来接收一串小写字母,并产生颠倒的字符串 所以如果我输入home 我把oɥ倒过来了 我试着在书中寻找开始,但什么都没有 首先,您的网站必须支持Unicode,Unicode由数千个字符组成,Unicode的前127个字符是ASCII。通过将一个字符一个字符转换为一个看起来像字符倒置版本的Unicode符号,可以创建看似倒置的文本,例如,要转换“6”,可以使用“9”,但“f”的翻转版本是“ɟ”,这是一个Unicode编号为607(十六进制代码025F)的拉丁字符 从技术上讲,您需

你将如何设计一个程序来接收一串小写字母,并产生颠倒的字符串

所以如果我输入
home

我把
oɥ倒过来了


我试着在书中寻找开始,但什么都没有

首先,您的网站必须支持Unicode,Unicode由数千个字符组成,Unicode的前127个字符是ASCII。通过将一个字符一个字符转换为一个看起来像字符倒置版本的Unicode符号,可以创建看似倒置的文本,例如,要转换“6”,可以使用“9”,但“f”的翻转版本是“ɟ”,这是一个Unicode编号为607(十六进制代码025F)的拉丁字符

从技术上讲,您需要两个文本区域框,一个用于原始文本,另一个用于翻转文本,还需要一个Javascript,在第一个文本框中使用onkeyup Javascript钩子在每次按如下方式释放键时调用upsideDownText()函数:

<textarea rows="5" cols="70" id="src" onkeyup="upsideDownText()"></textarea>

然后在upsideDownText()Javascript函数中执行如下文本处理:

<script type="text/javascript">
function upsideDownText() {
  var srcText = document.getElementById( 'src' ).value.toLowerCase();
  var out = '';
  for( var i = srcText.length - 1; i >= 0; --i ) {
    var ch = srcText.charAt( i );
    if( ch == 'a' ) {
      out += '\u0250' }
    } else if( ch == 'b' ) {
      out += 'q' }
    } else if( ch == 'c' ) {
      out += '\u0254'
    // etc....
    } else {
      out += ch
    }
  }
  document.getElementById( 'dest' ).value = out;
}
</script>

函数upsideDownText(){
var srcText=document.getElementById('src').value.toLowerCase();
var out='';
对于(var i=srcText.length-1;i>=0;--i){
var ch=srcText.charAt(i);
如果(ch='a'){
out+='\u0250'}
}否则如果(ch='b'){
out+='q'}
}else if(ch='c'){
out+='\u0254'
//等等。。。。
}否则{
out+=ch
}
}
document.getElementById('dest')。value=out;
}
获取由id=“src”标识的文本框的内容,并使用toLowerCase()方法将字符串转换为小写。然后从字符串的末尾开始,逐个字符地循环字符串。一个大的if-then-else-if块处理字符转换。最后,将转换后的字符串推入由id=“dest”标识的文本框中,该文本框是较低的文本框


您可以从源代码中找到如何一步一步完成此操作的完整列表。首先,您的网站必须支持Unicode,Unicode由数千个字符组成,Unicode的前127个字符是ASCII。通过将一个字符一个字符转换为一个看起来像字符倒置版本的Unicode符号,可以创建看似倒置的文本,例如,要转换“6”,可以使用“9”,但“f”的翻转版本是“ɟ”,这是一个Unicode编号为607(十六进制代码025F)的拉丁字符

从技术上讲,您需要两个文本区域框,一个用于原始文本,另一个用于翻转文本,还需要一个Javascript,在第一个文本框中使用onkeyup Javascript钩子在每次按如下方式释放键时调用upsideDownText()函数:

<textarea rows="5" cols="70" id="src" onkeyup="upsideDownText()"></textarea>

然后在upsideDownText()Javascript函数中执行如下文本处理:

<script type="text/javascript">
function upsideDownText() {
  var srcText = document.getElementById( 'src' ).value.toLowerCase();
  var out = '';
  for( var i = srcText.length - 1; i >= 0; --i ) {
    var ch = srcText.charAt( i );
    if( ch == 'a' ) {
      out += '\u0250' }
    } else if( ch == 'b' ) {
      out += 'q' }
    } else if( ch == 'c' ) {
      out += '\u0254'
    // etc....
    } else {
      out += ch
    }
  }
  document.getElementById( 'dest' ).value = out;
}
</script>

函数upsideDownText(){
var srcText=document.getElementById('src').value.toLowerCase();
var out='';
对于(var i=srcText.length-1;i>=0;--i){
var ch=srcText.charAt(i);
如果(ch='a'){
out+='\u0250'}
}否则如果(ch='b'){
out+='q'}
}else if(ch='c'){
out+='\u0254'
//等等。。。。
}否则{
out+=ch
}
}
document.getElementById('dest')。value=out;
}
获取由id=“src”标识的文本框的内容,并使用toLowerCase()方法将字符串转换为小写。然后从字符串的末尾开始,逐个字符地循环字符串。一个大的if-then-else-if块处理字符转换。最后,将转换后的字符串推入由id=“dest”标识的文本框中,该文本框是较低的文本框


您可以从源代码中找到如何一步一步完成此操作的完整列表

试试这个,有点暴力的方法,但对于大写、小写和数字字符效果很好-所有其他字符都按原样显示:

(定义上行映射“#散列(
(#\a.#\b.#\q)(#\c.#\d.#\p)(#\e.#\477;\ f.#\607;)
(#\g.#\387;)(#\h.#\613;)(#\i.#\305;)(#\j.#\k.#\k.#\l.š
#\m.#\n.#\u.#\o.#\o.#\d.#\q.#\b.#\r.#\r.#
#

例如:我是一个很好的学生#\∀) (#\B.#\试试这个,有点暴力的方法,但对大写、小写和数字字符非常有效-所有其他字符都按原样显示:

(定义上行映射“#散列(
(#\a.#\b.#\q)(#\c.#\d.#\p)(#\e.#\477;\ f.#\607;)
(#\g.#\387;)(#\h.#\613;)(#\i.#\305;)(#\j.#\k.#\k.#\l.š
#\m.#\n.#\u.#\o.#\o.#\d.#\q.#\b.#\r.#\r.#
#

例如:我是一个很好的学生#\∀) (#\B.#\n你能再多谈谈这个用例吗?这是为了美观吗?在哪里可以看到?在网页上?相关:不是为了一个网站。它是为了drscheme。我标记了scheme和racket。我想我应该早一点说。注意:如果要求被更改,所以输出不必是字符串,那么我们可以使用combinat从Racket的
2htdp/image
库中选择
text
rotate
。你能多谈谈这个用例吗?这是为了美观吗?在哪里可以看到?在网页上?相关:不是为了网站。是为了drscheme。我标记了scheme和Racket。我想我应该早点说。注意:如果uirement已更改,因此输出不必是字符串,然后我们可以使用Racket的
2htdp/image
库中的
text
rotate
的组合。感谢奥斯卡。它似乎不起作用。我使用的是具有列表缩写的初学者。也许这就是原因。@Jerrynch是的,这可能是原因