字符串、数组、Hash

#单引号字符串
#在单引号字符串中使用单引号,需要在单引号前面加反斜杠(\)
puts ‘I won\‘t lose‘

#双引号字符串
puts "I won‘t lose"

a = 2
puts "#{a}"    #在""里使用(#{}) 可以计算表达式的值
#创建数组
names = Array.new

names = Array.new(20)
puts names.size

names = Array.new(4,‘mam‘)    #为数组里的每个元素赋值
print names                    #输出["mam", "mam", "mam", "mam"]
puts

names = Array.new(10) { |i| i = i*2  }
print names                    #输出[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
puts

#另外一种表现形式
#nums = Array.[] {1,2,3,4,5}
nums = Array[1,2,3,4,5]
print nums
puts

nums = Array.[](1,2,3,4)
print nums
puts

nums = Array(1..9)
print nums                #输出[1, 2, 3, 4, 5, 6, 7, 8, 9]
puts

#三种创建Array对象的方式
puts Array.[](1,2,3,4).at(0)    #Array.[]()

puts Array[1,2,3].at(1)            #Array[]

puts [1,2,3,4].at(2)            #[]

#一些常用的方法
#...
#创建hash
months = Hash.new    #注意h要大写

#当访问带有默认值的哈希中的任意键时,如果键或值不存在,将返回默认值
months = Hash.new "month"
puts months                #输出{}
puts "#{months[0]}"        #输出month    

h = Hash[1=>‘aaa‘,2=>‘bbb‘,‘ccc‘=>3]
puts h[‘ccc‘]

#创建Hash对象
#Hash[[key =>|, value]* ]            ?
#Hash.new
#Hash.new(obj)
#Hash.new { |hash, key| block  }

months = Hash.new
months = {1=>‘aaa‘,2=>‘bbb‘,‘ccc‘=>3}
puts months[‘ccc‘]
keys = months.keys
print keys,"\n"

Hash.new { |hash, key| hash[key] =  }
时间: 2024-10-18 20:15:37

字符串、数组、Hash的相关文章

AC dreamoj 1011 树状数组+hash维护字符串的前缀和

http://acdream.info/problem?pid=1019 Problem Description Now we have a long long string, and we will have two kinds of operation on it. C i y : change the ith letter to y. Q i j : check whether the substring from ith letter to jth letter is a palindr

字符串数组中两个字符的最短距离

[leetcode] https://leetcode.com/problems/shortest-word-distance/ For example,Assume that words = ["practice", "makes", "perfect", "coding", "makes"]. Given word1 = "coding", word2 = "practic

Java求字符串数组交集 并集 差集 去重复并集

//系统方法 package com; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Test { public static void main(String[] args) { List list1 =new ArrayList(); list1.add("1111"); list1.add("2222"); list1.add

关于清空字符串数组

嗯,由于要多次输出某字符串数组,比如str[100], 所以,每次输出完之后需要对其进行重置╮( ̄▽ ̄)╭ 可以使用如下的函数: menset(str, 0, 100); 嗯,一共三个参数,很容易看明白哇 <( ̄︶ ̄)/ 度娘上是这么评价的: memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法!╰( ̄▽ ̄)╯

利用快慢下标操作字符串数组

1.去除掉多余的空格: e.g. Before:   Life___is__short___I___use___python_'\0'(下划线为空格) After:  Life_is_short_I_use_python'\0' (去除掉多余的空格) 去掉空格比较简单,我们可以通过逐个判断字符,如果有连续的空格就使数组左移直到只剩一个空格,可是这么做效率十分低下; 前面学习过利用快慢下标的方法实现快排思想,这里也可以采用类似的方法 : 对于删除后的数组,长度将减少或者不变,则指向删除后数组的下标

Android中资源文件中的字符串数组string-array简单用法

在Android中,用string-array是一种简单的提取XML资源文件数据的方法. 例子如下: 把相应的数据放到values文件夹的strings.xml文件里,或是其他自定义的xml中都可以,以下操作方法相同. <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="sports"> <item>足球<

本程序找出字符串数组 String[] arr = {“welcome”, “china”, “hi”, “congratulation”, “great”} 中的长度最大的元素,并打印输出。

/** * Homework14 * * @Description:本程序找出字符串数组 String[] arr = {"welcome", "china", "hi", * "congratulation", "great"} 中的长度最大的元素,并打印输出. * StringDemo01 * * @author  * * email: [email protected] 2017年4月18日下午6:3

iOS开发入门 ? C语言(字符串、字符串数组、命令行参数)

字符串 1. 概念 用双引号引起来的就是字符串 "a string" //C语言编译器会将两个并列的字符串自动拼接成一个字符串 "a string""another a string" // \是换行连接的标记(一行不够写) "a looooooooooong \ string" 常见ASCII编码: 'A' == 65    'a' == 97    '0' == 48    '\0' == 0 int a[10]; //表

利用char, str2mat, strvcat创建多行字符串数组

用专门函数char , str2mat , strvcat创建多行字符串数组示例. 1.char('str1', 'str2',...) Convert to character array (string)转换成字符串数组,空字符串是有效的. 示例:S1=char('This string array','', 'has two rows.')   S1 = This string array has two rows. 2.str2mat  (新版本中被char替代) Form blank-

Substring with Concatenation of All Words, 返回字符串中包含字符串数组所有字符串元素连接而成的字串的位置

问题描述:给定一个字符数组words,和字符串s,返回字符数组中所有字符元素组成的子串在字符串中的位置,要求所有的字符串数组里的元素只在字符串s中存在一次. 算法分析:这道题和strStr很类似.只不过strStr是子串,而这个题是字符串数组里的元素组成的子串,字符串数组里的元素是无序的,但是必须全部包含.所有考虑使用map集合.关键点在于几个临界值,字符串元素在s中重复了怎么做,找到一个符合的子串后怎么做,有字符串元素不匹配怎做. import java.util.ArrayList; imp